1

我正在使用正在使用组合的 durandal 主详细信息示例。我有一个视图模型,其中定义了一些事件,

 var ctor = function(name, description) {
        this.name = name;
        this.description = description;
    };
   

    ctor.prototype.activate = function() {
        system.log('Model Activating', this);
    };

   

    ctor.prototype.deactivate = function () {
        system.log('Model Deactivating', this);
    };

    ctor.prototype.viewAttached = function (view) {
      system.log('this is not called !', this);
    };

除了 之外的所有事件都viewAttached被触发。我在这里找不到原因..

4

3 回答 3

2

实际上,我使用的是来自 GithHub 存储库的最新版本的 Durandal。在查看组合模块后发现他们已将其重命名为compositionComplete. 这按预期工作..

 ctor.prototype.compositionComplete= function (view) {
      system.log('works!', this);
    }; 

编辑
在发布 Durandal 2.0 之后,在文档中我们有attached事件而不是viewAttached

于 2013-08-15T11:09:39.233 回答
1

如果您使用的是 Durandal 2.0,则“viewAttached”方法已重命名为“attached”。

于 2013-08-20T19:02:53.637 回答
0

如果没有更多信息,我唯一可以建议检查的是来自 Durandal 文档的注释:

注意:如果您设置了 cacheViews:true 那么 viewAttached 只会在第一次显示视图时被调用,在初始绑定时,因为从技术上讲,视图只附加一次。如果您希望覆盖此行为,请在您的组合绑定上设置 alwaysAttachView:true。

尝试设置alwaysAttachView:true绑定,看看是否有效。

于 2013-08-05T17:15:09.573 回答