Angularjs 敲除JS中的角度JS对象
我想在knockout js中使用angular js对象,并将数据绑定到knockout上的视图 例如:我可以得到角度js对象Angularjs 敲除JS中的角度JS对象,angularjs,knockout.js,Angularjs,Knockout.js,我想在knockout js中使用angular js对象,并将数据绑定到knockout上的视图 例如:我可以得到角度js对象 jQuery('#ng-app').data('$scope') 但这将返回所有范围变量。现在我想从这个对象中获取一个特定的对象,比如一个userDetails对象。因此,我可以使用以下工具在浏览器控制台中获取对象: jQuery('#ng-app').data('$scope').userDetails 我希望在我的knockout js viewmodel中
jQuery('#ng-app').data('$scope')
但这将返回所有范围变量。现在我想从这个对象中获取一个特定的对象,比如一个userDetails对象。因此,我可以使用以下工具在浏览器控制台中获取对象:
jQuery('#ng-app').data('$scope').userDetails
我希望在我的knockout js viewmodel中使用相同的值,然后将这些值绑定到我的视图字段 尽管Angular JS和KO都实现了MVVM,但它们的实现方式不同 特别是在KO中,为了能够进行“实时绑定”,您需要可以观察到属性。即,如果原始对象是这样的:
var vm = {
name: 'John'
}
var vm = {
name: ko.observable('John')
};
可以将其绑定到KO视图。但是,执行此操作后,如果更改name的值,则不会刷新视图(并且更改视图中的值不会更新viewmodel中的属性)。如果需要执行此操作,则必须具有如下对象:
var vm = {
name: 'John'
}
var vm = {
name: ko.observable('John')
};
将常规JS对象转换为具有可观察属性的对象的最快方法是使用插件。您最好只选择一个框架,而不是笨拙地尝试让它们一起工作。但如果必须的话,
userDetails
只是一个JS对象。你可以将其映射到一个淘汰视图模型。使用该插件。文档中包含大量示例,你可以随时在互联网上搜索更多。感谢@MattBurland,我在互联网上搜索了很多次后如何发布这个问题。那么你被困在哪一部分?使用映射插件就像var myVM=ko.mapping.fromJS(数据)一样简单代码>什么部分导致您出现问题?因为你目前没有足够的细节来回答这个问题。