繁体   English   中英

KnockoutJS:通过自定义绑定将属性添加到ViewModel

[英]KnockoutJS: Add Property to ViewModel through Custom Binding

我正在向页面添加自定义绑定。 在其中,我想将创建的对象之一保存为viewModel的属性。 当我这样做时,当我尝试在绑定之外访问它时,我得到“ undefined”。 为什么? 这是一个简化的示例:

HTML:

<div id = "myDiv" data-bind = "fooAdd: myFoo"></div>

JavaScript:

ko.bindingHandlers.fooAdd = {
  init: function(element, valueAccessor, allBindingsAccessor, viewModel) {
    var foo = 1;
    viewModel._foo = foo;
  }
};

var ViewModel = function(){
  var self = this;
  self.myFoo = ko.observable({});
  console.log(self); //Here I can expand the object returned in 
                     //the console and see that _foo is equal to 1.
  console.log(self._foo); //returns undefined
};

ko.applyBindings(new ViewModel());

从您的示例中,您将在init中设置新属性,该属性仅在应用绑定时被调用,但是您试图在视图模型的构造函数中对其进行访问。 在applyBindings调用之后尝试console.log(viewmodel._foo)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM