2017-08-28 56 views
0
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12"> 
    <button class="btn btn-danger pull-right btn-block" data-bind="enable: DeletedEnable">Delete</button>        
</div> 

即使DeletedEnablefalse,使能屬性不起作用,並且仍處於啓用狀態button啓用綁定不起作用

self.CurrentStatusIsDraft= ko.pureComputed(function() { 
     return false; 
    }); 

self.DeletedEnable = ko.pureComputed(function() { 
     return self.CurrentStatusIsDraft() ; 
    }); 
+0

正如你可以看到在這的jsfiddle https://jsfiddle.net/8cmLnyL5/的您所展示的代碼正在按照您的期望工作。如果您的瀏覽器控制檯中沒有可能導致此問題的錯誤,請顯示您的模型的更多詳細信息。 –

+0

@ Matt.kaaj老實說,我沒有任何控制檯錯誤。 –

+0

Parisa,你可以再顯示更多細節嗎?沒有更多的細節,真的很難提供幫助。 –

回答

0

根據您的例子https://jsfiddle.net/3rnt2zsc/

A)它不是使用inlineonClick一個很好的做法。 由於您使用的是淘汰賽,因此只需使用click事件綁定即可。 B)儘量少放javascript logic在你看來。

C)使用模型的new實例進行綁定。

例子:https://jsfiddle.net/of8qfdvL/1/

查看:

<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12"> 
    <div class="col-lg-offset-6 col-md-offset-6 col-lg-6 col-md-6 col-sm-12 col-xs-12"> 
     <div class="col-lg-6 col-md-6 col-sm-12 col-xs-12"> 
     <button class="btn btn-default btn-gb-default btn-block pull-right" data-bind="enable: ContinuedEnabled, click:OnContinue">Continue</button> 
     </div> 
     <button class="btn btn-danger pull-right btn-block" data-bind="enable: DeletedEnabled(), click:OnDelete">Delete</button> 
     <pre data-bind="text: ko.toJSON(DeletedEnabled, null, 2)"></pre> 
    </div> 
</div> 

型號:

var viewModel = function() { 
    var self = this; 
    self.SubmissionId = ko.observable(1234); 
    self.LastPageId = ko.observable(2); 
    self.ContinuedEnabled = ko.observable(true); // you can set the value based on your logic 

    self.OnContinue = function(){ 
     console.log("SubmissionId:",self.SubmissionId()); 
     console.log("LastPageId:",self.LastPageId()); 
    } 

    self.OnDelete = function(){ 
     console.log("SubmissionId:",self.SubmissionId()); 
    } 

    self.CurrentStatusIsDraft= ko.pureComputed(function() { 
     return false; 
    }); 

    self.DeletedEnabled = ko.pureComputed(function() { 
     return self.CurrentStatusIsDraft() ; 
    }); 
} 

ko.applyBindings(new viewModel()); // apply a new instance of your model 
+0

我也發現我正在使用jquery 3.1。但是,它在你的小提琴中工作正常,因爲你使用的是舊版本的jquery。當我轉移到舊版本的jquery時,它也適用於我。 –

+0

@ParisaKordjamshidi它與'jquery 3.1'無關。事實上,這是你綁定你的模型的一種方式。看看我的例子使用'jquery 3.1' https://jsfiddle.net/ahphsoq0/ –

+0

https://jsfiddle.net/qyeubea5/這是我的js文件是如何。我如何創建一個新的實例? –