淘汰JS中的Angular JS对象

时间:2015-12-15 18:22:43

标签: angularjs knockout.js

我想在knockout js中使用角度js对象,并将数据绑定到淘汰赛中的视图。

Ex:我可以将角度js对象视为

jQuery('#ng-app').data('$scope') 

但这将返回所有范围变量。现在我想从这个对象中获取一个特定的对象,比如说userDetails对象。所以我可以在浏览器控制台中获取对象:

jQuery('#ng-app').data('$scope').userDetails

我希望在我的knockout js viewmodal中使用它,然后将值绑定到我的视图字段。

1 个答案:

答案 0 :(得分:1)

尽管Angular JS和KO都实现了MVVM,但它们是以不同的方式实现的。

特别是,在KO中,为了能够进行“实时绑定”,您需要将属性视为可观察对象。即如果原始对象是这样的:

var vm = {
  name: 'John'
}

您可以将其绑定到KO视图。但是,执行此操作后,如果更改name的值,则不会刷新视图(并且更改视图中的值,不会更新viewmodel中的属性)。如果您需要这样做,您必须有这样的对象:

var vm = {
  name: ko.observable('John')
};

将常规JS对象与具有ko可观察属性的对象共存的最快方法是使用ko.mapping插件。