2013-12-18 60 views
0

是否可以使用Kendo UI MVVM綁定元素上HTML5必需屬性的可見性?綁定在元素上添加必需屬性

位於元素上的必需屬性指示該元素的值是必需的。從技術上來說,屬性也應該具有「必需」的值。

隨着劍道UI我能值的屬性綁定

<input data-bind="attr: { required: isFieldRequired }"/> 

然而,這仍然輸出中呈現的HTML所需要的屬性,這是不是我想要的(再次,因爲它是存在表示要求)。

我可以偵聽dataSource上的更改事件,並使用jQuery和ViewModel上的值手動添加或刪除屬性,但這並不理想。

如果有一種方法來綁定屬性是否呈現,那就太棒了!

回答

2

使用阿塔納斯Korchev的答案(下面的鏈接),你只需要添加自定義綁定,那麼它對我來說工作得很好。

https://stackoverflow.com/a/15947852/2692411

首先添加自定義的結合

kendo.data.binders.required = kendo.data.Binder.extend({ 
    refresh: function() { 
    var required = this.bindings.required.get(); 
    if (required) { 
     this.element.setAttribute("required", "required"); 
    } else { 
     this.element.removeAttribute("required"); 
    } 
    } 
}); 

然後在您輸入只使用所需的屬性

<input data-bind="required: isRequired"/>

0

按我的理解,你需要使用

data-bind="attr: {data-required-msg:insuranceEmailRequiredMsg,validationMessage:insuranceValidationMessage}" 

和JS:在視圖模型觀察到的定義這兩個屬性:

insuranceRequiredMsg:"Msg is required" 
insuranceValidationMessage:"Msg is invalid" 
+0

不可以 - 添加data-required-msg不會設置必需的屬性。我也不相信你可以通過這種方式實際綁定到數據屬性。 –

+0

我剛剛結束了使用viewmodel傳遞所需字段的列表。雖然它不是很好,但它的確意味着我可以設置加載時所需的所有字段,這是我真正需要的。然後加載時,只要使用jQuery設置必需的屬性,如果它找到指定的控件。 –

+0

我不清楚你的問題。你想將值設置爲必需的屬性?你能解釋清楚嗎? – ConnectingCode