我在我的项目中使用 KnockoutJS,但我想学习 AngularJS,因为它有很多 Knockout 没有的美味功能。所以我对使用 Angular 重写我的一些代码很感兴趣。但我不明白如何做一些我在 Knockout 中使用的简单事情。例如,Knockout 具有计算 observables 的功能。这个很酷!我已经发现我可以使用一个简单的函数来代替。但是 Knockout 为计算的 observables 提供了“写入”功能,例如:
var first_name = ko.observable('John'),
last_name = ko.observable('Smith'),
full_name = ko.computed({
read: function(){
return first_name() + ' ' + last_name();
},
write: function(new_value){
var matches = new_value.match(/^(\w+)\s+(\w+)/);
first_name(matches[1]);
last_name(matches[2]);
}
});
JSFiddle 上的这段代码:http: //jsfiddle.net/Girafa/QNebV/1/
这段代码允许我在更改“full_name”时更新“first_name”和“last_name”observables。如何使用 AngularJS 来完成?一个带有参数的函数被检查是否存在?像这样的东西?
first_name = 'John';
last_name = 'Smith';
full_name = function(value){
if (typeof value != 'undefined')
{
// do the same as in the Knockout's write function
}
else
{
// do the same as in the Knockout's read function
}
}
最佳做法是什么?