[英]How can I convert the string of a JavaScript object literal to a JavaScript object literal?
[英]Knockout: how can I pass a model to a javascript object literal?
請通過以下鏈接訪問: http : //jsfiddle.net/nn0mfe48/1/
在這里,當我使用對象文字時,我可以使用敲除WITH綁定,但是當我將其更改為功能時,相同的代碼將無法正常工作。
作品:
var profileModel = {
first: ko.observable("Bob"),
last: ko.observable("Smith"),
};
不起作用:
var profileModel = function() {
this.firstname= ko.observable("Bob");
last: ko.observable("Smith");
};
我需要更改什么代碼才能使其正常工作。 我需要的時間是將淘汰的viewmodel對象傳遞給viewmodel並動態綁定值,而不是對值進行硬編碼。
我已經通過鏈接: 聲明為對象文字和函數的敲除視圖模型之間的差異
但無法理解如何利用我的情況。 希望我解釋清楚並且可以理解。 在這方面的任何幫助,不勝感激。
您在問題中的代碼正在混合對象文字語法和變量賦值語法。 此外,在函數中,您應該this
變量分配給self
/ that
變量以減輕范圍問題。 它還使使用ko.computed()更好。
var profileMod = function() {
var self = this;
self.first = ko.observable("Bob");
self.last = ko.observable("Smith");
}
我已經更新了您的小提琴http://jsfiddle.net/nn0mfe48/3/
正確創建視圖模型后:
var profileModel = function() {
this.firstname = ko.observable("Bob");
this.lastname = ko.observable("Smith");
};
確保在綁定之前創建它的新實例 :
var vm = new profileModel();
和綁定是 :
ko.applyBindings(vm);
另外,請謹慎使用with
綁定。 您已經在shell
模型周圍創建了一個上下文,該上下文迫使您使用$root
訪問您的profile
視圖模型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.