簡體   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