2014-01-16 64 views
0

是否有任何方法將新方法添加到已定義的模型中將Knockout添加到已定義的模型

var MyModel = function() { 

    var self = this; 
    self.method1 = function() { 
    return true; 
    } 
    self.method2 = function() { 
    return true; 
    } 
}; 


viewModel = new MyModel(); 
ko.applyBindings(viewModel); 

這使我獲得viewModel.method1()viewModel.method2(),但我希望能夠,我可以以同樣的方式例如訪問該文件在後面添加一個新方法

viewModel.extend = function() { 
    self.method3 = function() { 
    return true; 
    } 
} 

現在我將有機會獲得viewModel.method1()viewModel.method2()viewModel.method3()

任何想法?

感謝

回答

1

您可以定義一個用原型:

MyModel.prototype.method3 = function() { 
    var self = this; // Reference to instance of MyModel 
    var m1 = self.method1(); 
    var m2 = self.method2(); 
    return true; 
}; 

在您的例子:

var MyModel = function() { 

    var self = this; 
    self.method1 = function() { 
    return true; 
    } 
    self.method2 = function() { 
    return true; 
    } 
}; 


viewModel = new MyModel(); 
ko.applyBindings(viewModel); 

MyModel.prototype.method3 = function() { 
    return true; 
}; 

console.log(viewModel.method3()); 
+0

完美,我的工作是多麼需要。謝謝 –

相關問題