2017-01-29 6 views
0

私は自分の仕事で新しい開発者であり、私の最初のプロジェクトとしてこのコードを継承しました。このコードはアプリで動作していますが、手作業で値を追加しようとすると、その理由がわかりません。継承されたノックアウトテンプレート私は仕事を得ることができません

テンプレートコードは既存のものであり、残りは私が実装しようとしているものです。ここ

コードである:ここ

<p>Rate: <strong data-bind="text: rate"></strong></p> 
<div data-bind="template: { name: 'percentage-template', data: { data: rate, enable: secure }}"></div> 

<script type="text/html" id="percentage-template"> 
    <div class="input-group"> 
     <input type="text" 
     class="form-control" 
     data-bind="vale: data, 
       precision: precision || 2, 
       isPercent: isPercent || true, 
       enable: enable || true" 
     /> 
     <span class="input-group-addon">%</span> 
    </div> 
</script> 

<script type="text/javascript"> 
    function MyViewModel() {  
     this.rate = ko.observable(.01); 
     this.secure = ko.observable(false); 
    } 

    ko.applyBindings(new MyViewModel()); 
</script> 

アプリで動作しているビューの部分である:

<div data-bind="template: { name: 'percentage-template', data: {data: Form.Current.Rate, enable: ViewSecurity.Edit}}"></div> 

問題は、テンプレートを使用した場合、入力ボックスが空のままであることであり、そして料金は表示されません。

編集:私は値をテンプレート内カスタムバインディングを変更し、おかげで をブライアン私はまた、値を作ったテンプレートは、「データ」にバインドするように設定されており、あなたのケースでは、あなたが渡している

+0

本当にあなたの質問に従わないのですが、観察可能であるか、または安全であるべきですか? 2番目の数値はデフォルトのノックアウトバインディングではないので、カスタム数値バインディングがどこかにある必要があります。 –

+0

ブライアンに感謝します。私は成功していない観察可能な人たちと過去に一緒に試みましたが、私はおそらくそれらをそのまま残すべきです..! 数値がネイティブバインディングではないことに気付かず、見つけましたが、66行です。私はもっ​​とそれを掘り下げて見てみましょう。 – user3142554

答えて

0

を観測'rate'はそのバインディングに含まれていますが、 'rate'はオブザーバブルとして設定されていないため、モデルから初期値を取得するだけで、更新をキャッチするための双方向バインディングはありません。テキスト入力に入力された変更をモデルの 'レート'変数を更新するには、レートを観測可能にする必要があります。

this.rate = ko.observable(.01); 
関連する問題