knockout帮定一个对象var obj = {a:1,b:2,c:3}

BeerGates 2018-12-16 03:24:19
对象
var obj ={a:1,b:2,c:3}
var viewModel = {d:ko.observable(obj);}
ko.applyBindings(viewModel);

<span data-bind="text:d().a"></span> // 这样可以显示

<input data-bind="value:d().a"> //这里输入改变后,上边的SPAN不变???

还有,如果我模型是多级嵌套?应该怎么显示?

例如

var obj2 = { a:1, b:2, c:3,d:{e:4,f:5}};
var viewModel = {d:ko.observable(obj);}
ko.applyBindings(viewModel);
d.e,d.f 用 <span data-bind="text:d().d.e"></span> //这样不显示

...全文
1621 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
BeerGates 2018-12-23
  • 打赏
  • 举报
回复
引用 3 楼 Hello World, 的回复:
把d给去掉了,如果加了就用d.a就可以,不用d().a,另外你代码里的var viewModel = {d:ko.observable(obj);}应该是var viewModel = {d:ko.observable(obj)};,分号要在}后面
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Knockoutjs Test</title>
</head>
<body>
    <span data-bind="text: a"></span>
    <input data-bind="value: a" />
</body>
</html>
<script src="../Scripts/knockout/knockout3.4.0.min.js"></script>
<script src="../Scripts/knockout/knockout.mapping-latest.js"></script>
<script>
    var obj = { a: 1, b: 2, c: 3 }
    var viewModel =  ko.mapping.fromJS(obj);
    ko.applyBindings(viewModel);
</script>
多谢!简便多了
BeerGates 2018-12-17
  • 打赏
  • 举报
回复
引用 1 楼 Hello World, 的回复:
knockout绑定复杂的JSON数据时可以使用Mapping插件,var viewModel = ko.mapping.fromJS(data);转换之后就可以监控了,里面的属性都加()来获取或者设置
但当input改变的时候,text:d().a 不改变
Hello World, 2018-12-17
  • 打赏
  • 举报
回复
knockout绑定复杂的JSON数据时可以使用Mapping插件,var viewModel = ko.mapping.fromJS(data);转换之后就可以监控了,里面的属性都加()来获取或者设置
Hello World, 2018-12-17
  • 打赏
  • 举报
回复
把d给去掉了,如果加了就用d.a就可以,不用d().a,另外你代码里的var viewModel = {d:ko.observable(obj);}应该是var viewModel = {d:ko.observable(obj)};,分号要在}后面
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Knockoutjs Test</title>
</head>
<body>
<span data-bind="text: a"></span>
<input data-bind="value: a" />
</body>
</html>
<script src="../Scripts/knockout/knockout3.4.0.min.js"></script>
<script src="../Scripts/knockout/knockout.mapping-latest.js"></script>
<script>
var obj = { a: 1, b: 2, c: 3 }
var viewModel = ko.mapping.fromJS(obj);
ko.applyBindings(viewModel);
</script>

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧