MVVM架構~knockoutjs系列之一(yi)些異常的總結(永(yong)久(jiu)更(geng)新)
1 關于attr屬性的(de)問題
這個問題主要出現(xian)的IE7和360瀏(liu)覽器,使(shi)用attr時,需要為(wei)屬性(xing)名加上單引號(hao),代碼(ma)如下:
<a data-bind="attr:{'href':url,'class':cssname},text:name"></a>
2 computed方法失(shi)效(xiao)
這(zhe)個(ge)問(wen)題需要(yao)將(jiang)當(dang)前對象(xiang)以參數的(de)形式傳入computed方法,代碼如下:
var self=this; self.realMoney = ko.computed(function () { return (self.Money()?self.Money():0) - (self.taxMoney()?self.taxMoney():0); },self);
3 頁面現出(chu)的(de)object Error異常,它(ta)在IE內(nei)核瀏覽器(qi)上出(chu)現,火狐沒有問題(ti)
這個問題是由于引入兩個版本的(de)jquery后,它們出(chu)現了相互沖突,這個異常非常不好(hao)找原因,解決方案是去掉一(yi)個JQ庫即可
4 還(huan)是(shi)JS沖突引起的ko關(guan)鍵(jian)字with的問(wen)題,同樣(yang)是(shi)object Error,同樣(yang)是(shi)火狐(hu)可以(yi),IE不行(xing)
這個問題,我們除了(le)去一個JS庫(ku)之(zhi)外,還(huan)有一種方法,就(jiu)是(shi)不用with,使用第三者變量(liang)來代碼(ma)with
self.tempSubjects = ko.observableArray(); self.gradeone.subscribe(function () { self.tempSubjects(self.gradeone().subjects); getData(); });
永久更新...