我希望能夠以相當一擊的方式使用knockout來將對象綁定到jQuery UI對話框中的元素。有很多事情發生了,但是我很早就被knockout抱怨,抱怨我嵌套在with-control-binding內的屬性沒有定義。Knockout嵌套控件綁定
<div class="feedback-container" data-bind="with: feedback">
[... Other Bindings Here...]
<div class="feedback-list" data-bind="foreach: list">
<div class="item">
[... List binding here ...]
</div>
</div>
<!-- Dialog Box for editing/creation-->
<div style="display: none" data-bind="with: $root.feedback.editFeedback">
<div id="dialog_add_feedback" data-bind="attr: { title: mode }">
<div class="form">
<div class="field" data-bind="if: $root.feedback.mode() == 'contact'">
<label>Lot</label>
<input type="text" data-bind="value: lot"/>
</div>
<div class="field" data-bind="if: $root.feedback.mode() == 'lot'">
<label>Contact</label>
<input type="text" data-bind="value: contact"/>
</div>
</div>
</div>
</div>
</div>
我申請綁定是這樣的:
ko.applyBindings({ "feedback" : new Feedback("contact") });
與所正是如此定義的反饋構造函數(我已經刪除了一大堆其他綁定爲簡單起見):
function Feedback(mode) {
var self = this;
self.list = ko.observableArray([]);
self.mode = ko.observable(mode);
self.editFeedback = ko.observable();
}
Knockout在與標題綁定的屬性上窒息。這是怎麼發生的? editFeedback爲空,ko的with-control-binding應該阻止後代綁定被綁定。
這是否與事實有關,在另一個綁定中綁定了綁定?這是允許的嗎?
Unable to parse bindings. Message: ReferenceError: mode is not defined; Bindings value: attr: { title: mode }
也許你可以在此基礎上撥弄展示您的問題?你打電話給'.dialog'嗎?如果你是,那麼我懷疑會是你遇到同樣的問題,如下所示:http://stackoverflow.com/questions/10917264/observablearray-bound-table-does-not-update-when-inside-a-jquery- ui-dialog/10957190#10957190對話框正在移動到底部,KO嘗試再次將其綁定。 –