dojo应用程序中的这个关键字knockout绑定

时间:2014-02-28 08:19:24

标签: javascript knockout.js dojo

我正在开发一个使用knockout和dojo工具包的应用程序。我创建了一个模块,但无法在方法中使用关键字作为viewModel

require(["dojo/_base/declare", 
     "dojo/_base/lang",
     "http://ajax.aspnetcdn.com/ajax/knockout/knockout-3.0.0.js"],  function(declare, lang, ko){
    var GeekService = declare(null, {
        geeks: ko.observableArray(),            
        constructor: function(){
            //this.removeGeek = lang.hitch(this, this.removeGeek);
        },

        removeGeek: function(item){             
            console.log(this)
        }.bind(this) // Ensure that "this" is always this view model
    });

    ko.applyBindings(new GeekService());
})

如果我在构造函数中不使用lang.hitch(this, this.removeGeek);,则无法通过removeGeek方法中的 this 关键字访问ViewModel对象。

Knockout示例,告诉我们我们可以使用 bind(this)来确保"这个"始终是ViewModel。 here example

上面的appplication运行和控制台写入:Window {top:Window,window:Window,location:Location,external:Object,chrome:Object ...}

但它应该返回GeekService wiewModel对象。

0 个答案:

没有答案