1
我已經在rivets.js中創建了一個綁定到給定模型中的元素的多個屬性的綁定器。我想在JavaScript中爲我的模型對象綁定一個綁定器。Rivet.js中的雙向粘合劑
//Model
var login = {
test1 : {text:"myData1",color:"myColor1"},
test2 : {text:"myData2",color:"myColor2"}
}
//My Custom Binder
rivets.binders.customize= function(el, value) {
el.style.color = value.color;
el.text = value.text;
}
//html
<a rv-customize='login.test1'></a>
我也登錄模型綁定到UI頁面,我也想更新Dom。
//#myDOM => login
rivets.bind($('#myPage'), {login: login})
現在我用幾個輸入標籤的形式來修改模型這是不是在目前情況下,我的意思是我綁定login.test1這種形式分開。
//#myForm => login.test1
rivets.bind($('#myForm'), {model: login.test1})
//#myForm
<form>
//...
<input rv-value='model.color' type='text'/>
<input rv-value='model.text' type='text'/>
//...
</form>
當我改變上述形式輸入的輸入,模型得到改變,並反映在登錄對象。但是在DOM或UI中不會反映出來。
如果我採用相同的場景,只需綁定下面的單個屬性,則流程正常工作,並且從輸入到模型的任何更改都會反映在DOM中。
rivets.binders.color = function(el, value) {
el.style.color = value
}
我錯過了什麼嗎?這種類型的綁定器可以綁定多個屬性嗎?我需要做什麼額外的配置?
似乎有一些問題與提琴..其不具約束力的模型.. – damitj07
我只是檢查它(火狐),並且仍然似乎完美的工作。如果我將輸入顏色更改爲藍色,錨標記更改爲藍色,並且如果我更改了文本輸入,它將更改文本。你使用什麼瀏覽器,並且你是否遇到任何控制檯錯誤? – David784
好的,找到了問題。在Firefox中它工作正常,但在Chrome中它拒絕執行來自'https://raw.githubusercontent.com/.../rivets.bundled.min.js'的腳本,因爲它的MIME類型('text /平原')是不可執行的,並嚴格的MIME類型檢查啓用。解決方案(從這[問題](https://stackoverflow.com/questions/17341122/link-and-execute-external-javascript-file-hosted- on-github/18049842#18049842)改爲'https://cdn.rawgit.com/...'。現在應該工作了。 – David784