knockout.js是否支持綁定bettwen html元素而沒有viewmodel,就像Silverlight/Wpf元素綁定一樣?knockout.js是否支持html元素之間的綁定?
例如: 我有一個表單,我想基於一個字段的值(複選框)顯示/隱藏字段。
是否有一個簡單的方法,使用knockout或使用純javascript工作會更直接?
我試圖實現一個基於數據屬性的可重用方式,但它開始變得繁瑣,我開始想知道如果淘汰賽是要使它可重用的方式。
knockout.js是否支持綁定bettwen html元素而沒有viewmodel,就像Silverlight/Wpf元素綁定一樣?knockout.js是否支持html元素之間的綁定?
例如: 我有一個表單,我想基於一個字段的值(複選框)顯示/隱藏字段。
是否有一個簡單的方法,使用knockout或使用純javascript工作會更直接?
我試圖實現一個基於數據屬性的可重用方式,但它開始變得繁瑣,我開始想知道如果淘汰賽是要使它可重用的方式。
你不能做到這一點沒有一個ViewModel,但你可以使用計算變量做到這一點:
//In your view model
this.showFormElement = ko.computed(function(){
if(this.checkboxValueiswhatIwant()){
return true;
}
return false;
}, this);
然後在你的HTML:
<form [id, classes, etc..]>
<input type="checkbox" data-bind="checked: checkboxValueiswhatIwant" />
<input type="input" data-bind="visible: showFormElement" />
</form>
出於好奇心你如何使用淘汰賽沒有視圖模型?
如果你以某種方式使用它,爲什麼?
我不是。我目前的方法包括純js,通過id搜索字段並訂閱onchange事件。 –
好吧,我假設你正在使用淘汰賽......這是它的基礎上,這更新了基於事件的用戶界面的東西。如果你確實使用它,我在那裏給你的代碼將會起作用。 – jefffan24
你在技術上不需要計算。只需將'checked'綁定添加到複選框,並將該可見項用於另一個元素上的'visible'綁定。 –
我不認爲淘汰賽支持HTML元素之間的綁定。即使它做到了,你也應該在js中創建一個基礎的observable,然後綁定你的html元素。我正在給這個問題+1,以抵消一些給它的downvote。不完全是一個無理的問題。 – morpheus
我在Silverlight和WPF中有一些背景,因此有了MVVM開發,但我現在開始在HTML/JS中開發。我還沒有開始使用淘汰賽,只是玩了一下。在這個特殊情況下,我偶然發現了這種形式,並且正如我想象的那樣,我會在另一個頁面中再次發現這種情況,我想知道淘汰賽是否會支持XAML所做的一些功能。我無法在文檔中找到有關該案例的信息,所以我在這裏提問。 –