2017-04-14 5 views
0

私はtypescriptを初めて使い、以下のKnockout + jsをknockout + typescriptに変換したいと考えています。ノックアウト+ jsが....しかし、私はまだそれがtypescriptですと動作するように失敗しています、取り組んでいるtypescriptとknockoutを持つ選択ボックスモデル

ビュー:

<select data-bind="options: choices, value: selectedChoice"></select> 

モデル:

var MyModel = { 
    choices: ["Blue", "White", "Black", "Yellow"], 
    selectedChoice: ko.observable("Yellow") 
}; 

MyModel.selectedChoice.subscribe(function(newValue) { 
    alert("the new value is " + newValue); 
}); 


ko.applyBindings(MyModel); 

活字体:

import BaseVM = require("./BaseVM"); 

class MyModel extends BaseVM { 
    choices = ko.observableArray(["one", "two", "three"]); 

    //Here selectedChoice subscribe in typescript... 

} 

export = MyModel; 

答えて

0

クラス内のtypescriptでは、サブスクリプションコードをコンストラクタ関数の中に入れる必要があります。次に、 "this"を使用して、購読したいプロパティにアクセスできます。

class MyModel extends BaseVM { 
    choices = ko.observableArray(["one", "two", "three"]); 
    selectedChoice = ko.observable("Yellow"); 

    constructor() { 
     this.selectedChoice.subscribe(function (newValue) { 
      alert("the new value is " + newValue); 
     }); 
    } 
} 
+0

チャームのように機能します。 –