大佬教程收集整理的这篇文章主要介绍了javascript – 拆分knockoutjs,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
var BALL = {}; BALl.roll = function(avm) { // function code };
我的理由是,为了使多个绑定正常工作而不是冲突,您需要非常小心,您选择的目标dom元素不会改变.不幸的是,标记有一个令人讨厌的习惯,即随着时间的推移而改变,以后可能会让你的viewModel出现问题.
我在一个非常大的KO项目中使用的一般方法是
>整个应用程序的一个全局顶级命名空间,例如myapp
>将单独的功能块拆分为单独的文件.通常有自己独特的命名空间.例如`myapp.navigation”
>如果特定的一个命名空间太大,则将其拆分为更多的子命名空间,或者如果不合适,则将相同的命名空间拆分为多个文件.
>在最后混合所有文件以保持性能.
我最近使用的一些命名空间代码
var Namespace = (function() { var namespace,global,root; namespace = function(identifier,contents) { if (!identifier || identifier.length == 0) { throw Error("A namespace identifier must be supplied"); } global = window; // create the namespace var parts = identifier.split("."); for (var i = 0; i < parts.length; i += 1) { if (!global[parts[i]]) { global[parts[i]] = {}; } if (i == 0) { root = global[parts[i]]; } global = global[parts[i]]; } // assign contents and bind if (contents) { global.$root = root; contents.call(global); } }; return namespace; })();
所以在你的myapp.navigation文件中你会有
Namespace("myapp.navigation",function() { var self = this; // your myapp.navigation object this.someFunction = function() { } });
这只是使用自调用函数传递手动构造的命名空间的简写.它为您提供了一个私有闭包,您可以在不同的js文件中使用具有相同命名空间的多个Namespace调用.
您的applyBindings调用现在可以永远
ko.applyBindings(myapp);
希望这可以帮助.
以上是大佬教程为你收集整理的javascript – 拆分knockoutjs全部内容,希望文章能够帮你解决javascript – 拆分knockoutjs所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。