2017-04-14 58 views
0

我是新來的打字稿,並希望將下面的淘汰賽+ js轉換爲淘汰賽+打字稿。淘汰賽+ js的工作,但我仍然無法使其與打字稿工作....選擇框模型與打字稿和淘汰賽

查看:

<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

在類內的打字稿中,您需要將您的訂閱代碼放入構造函數中。然後你可以使用「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

它就像一個魅力! –