ViewAttached事件未被触发

时间:2013-08-05 05:19:42

标签: javascript-events single-page-application durandal

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

 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之外的所有事件。我在这里找不到原因..

3 个答案:

答案 0 :(得分:2)

实际上我在GithHub存储库中使用了最新版本的Durandal。在查看合成模块之后发现它们已将其重命名为compositionComplete。这按预期工作..

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

修改
获得Durandal 2.0后,在文档中我们有attached个事件,而不是viewAttached

答案 1 :(得分:1)

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

答案 2 :(得分:0)

如果没有更多信息,我唯一可以建议检查的是这封注from the Durandal docs:

  

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

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