如何在knockout.js中的foreach中使用computed方法
How to use computed method inside foreach in knockout.js
我有点玩淘汰赛,但我遇到了一些问题。我做了一个例子,你创建了名字,姓氏,然后创建了一个ko.computed来生成fullName。这还可以,但假设我有一个可观察的数组,其中有很多包含名字和姓氏的对象。如何使用计算函数来创建全名?如果我创建了类似的东西
function vm() {
....
self.fullName = ko.computed(function() {
return self.names().firstName + "" + self.names().lastName;
}
我不能使用它,因为这是一个视图模型方法,在foreach绑定敲除中会查找本地方法(在本例中,是self.names()的方法)
也不能使用$root.fullName,因为那样敲除将不会检索到正确的值。
Fiddle:http://jsfiddle.net/mtfv6q6a/
您可以通过将变量分配给vm来调用它。例如:
appModel = new vm();
ko.applyBindings(appModel);
和
<h3 data-bind="text: appModel.fullName()"></h3>
这是有效的,但总是返回undefinedundefinedhttp://jsfiddle.net/mtfv6q6a/1/因为firstName不是names()的属性
你需要一些简单的功能,比如:
self.returnFullName = function(item) {
return item.firstName + " " + item.lastName;
};
并称之为
<h3 data-bind='text: appModel.returnFullName($data); '></h3>
http://jsfiddle.net/mtfv6q6a/2/
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 数组在递归方法中设置为null
- 打破承诺链的好方法是什么
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 使用“;这个“;JavaScript原型方法中的关键字
- 序列化数据属性中对象的最可靠方法
- 使用Objective-C的JavaScript注入方法
- 有没有一种方法可以添加相同的项目val=“0”;4〃;到JavaScript中数组的每个对象
- 有没有一种方法可以防止img get请求使用css或js发生
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- toBoolean方法类似于toString
- 如何在单击复选框后调用控制器方法
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- 递归使用 eval() 是检查程序执行的好方法吗?
- 如何在webView,Android中从@JavascriptInterface方法调用Javascript
- toLocaleDateString和toLocaleString方法不尊重机器时区
- 有条件更新d3.js力图中节点的最佳方法
- TypeError:在不兼容的接收器nodejs上调用了方法Uint8Array.length
- 如何在knockout.js中的foreach中使用computed方法