0

我在我的应用程序中使用 Knockout、Require 和knockout-amd-helpers

我想在一个Knockout initialize将被多次调用的函数中动态加载模型,因为我不知道模型是什么,我认为这可能是一种更有效的动态加载方式,而不是一次加载所有模型。请参见下面的代码:

ko.utils.extend(ModelA.prototype.initialize = function(data, parent) {

...

require(['model/Pretag' + ko.unwrap( data.code )], function(Role){ 
    roleInstance = new Role(parent);
    roleInstance.initialize(data.properties);

    ....

    self.roleObservable( roleInstance );
}

...
})

问题:使用这种方法,我经常会从模板的内联 JS 代码中遇到竞争条件,因为roleInstance.initialize(data.properties);尚未完成初始化。

require([..],function(){})在模板开始执行任何内联 JS 调用之前,是否有异步强制执行多个加载?

更新:模板内的内联JS代码如下:

<li>Type: (<span data-bind="text: getObject('CODE').getProperties().STATIC_TYPE"></span>)</li>

这将引发错误,因为getObject('CODE').getProperties()未定义,因为getObject('CODE')尚未完成初始化

该列表包含在下面的内联 ko 模板中。

<!-- ko template: { name: 'template_contains_problem_inline_JS', foreach: people } --><!-- /ko -->
4

0 回答 0