Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 将主干模型与AngularJS结合使用_Backbone.js_Angularjs - Fatal编程技术网

Backbone.js 将主干模型与AngularJS结合使用

Backbone.js 将主干模型与AngularJS结合使用,backbone.js,angularjs,Backbone.js,Angularjs,最近我在思考Backbone.js和AngularJS之间的异同 我发现主干中真正方便的是主干模型和主干集合。您只需设置urlRoot,然后通过Ajax与后端服务器的通信基本上可以正常工作 难道不能在AngularJS应用程序中只使用主干模型和集合吗? 因此,我们可以利用AngularJS实现双向数据绑定,并通过主干模型和集合方便地访问服务器端(或其他存储选项) 快速的互联网搜索没有发现任何建议这种使用场景的网站。 所有资源都会讨论使用一个或另一个框架 是否有人有使用AngularJS的主干模型

最近我在思考Backbone.js和AngularJS之间的异同

我发现主干中真正方便的是主干模型和主干集合。您只需设置urlRoot,然后通过Ajax与后端服务器的通信基本上可以正常工作

难道不能在AngularJS应用程序中只使用主干模型和集合吗? 因此,我们可以利用AngularJS实现双向数据绑定,并通过主干模型和集合方便地访问服务器端(或其他存储选项)

快速的互联网搜索没有发现任何建议这种使用场景的网站。 所有资源都会讨论使用一个或另一个框架

是否有人有使用AngularJS的主干模型或集合的经验。
它们不是很好地互补吗?我少了什么吗?

这是一个肯定有效的问题

$resource的当前实现存在很多限制,其中包括没有像Backbone.collection这样的内部集合管理。在angular中编写了我自己的集合/资源管理层(使用$http,而不是$resource)之后,我现在正在考虑是否可以用许多样板内部构件替换主干集合和模型

到目前为止,获取和添加部分是完美的,可以保存代码,但是将这些主干模型(或者其中的属性)绑定到输入上的ng模型以进行编辑还不起作用


@Ericlemmons(github)也做了同样的事情,让两人顺利结婚——我会问他,让我的测试开始,然后公布结论……

我想知道是否有人也这么做过。在我最新/第一个angular应用程序中,我发现angular在模型和集合中非常缺乏(除非我遗漏了一些东西!)。当然可以使用$http或$resource从服务器提取数据,但是如果要向模型或集合添加自定义方法/属性,该怎么办。例如,假设你有一系列汽车,你想计算总成本。大概是这样的:

carCollectionService.getTotalCost(carCollection)
使用主干集合,这将非常容易实现:

carCollection.getTotalCost()
但在Angular中,您可能必须将自定义方法包装到服务中,并将集合传递给它,如下所示:

carCollectionService.getTotalCost(carCollection)
我喜欢主干方法,因为在我看来它读起来更干净。不过,获取双向数据绑定很棘手。查看这个JSBin示例

编辑数字时,collection.totalCost不会更新,因为未通过model.set()设置car.cost属性


相反,我基本上使用我自己的构造函数/“类”作为模型和集合,从Backbone.Model和Backbone.Collection复制了Backbone的API的子集,并修改了我的自定义构造函数/类,使其能够与Angular的数据绑定一起工作。

上面的一个工作绑定示例。。。

它演示了一种使用AngularJS处理主干模型的方法。 但是setters/getter连接会更好。

试试看

我还没有在任何地方实施它,但几天前我看到了一个关于它的讨论。它似乎从一个角度解决了同样的问题


视频:

有一个类似的想法,并想出了这个想法: 只添加一个getter和setter for ever模型属性

Backbone.ngModel = Backbone.Model.extend({
        initialize: function (opt) {
         _.each(opt, function (value, key) {
             Object.defineProperty(this, key, {
                 get: function () {
                     return this.get(key)
                  },
                 set: function (value) {
                     this.set(key, value);
                 },
                 enumerable: true,
                 configurable: true
             });
         }, this);
     }
 });

看小提琴:

我也在想同样的问题-

这是一个用例:

salesforce mobile sdk(hybrid)有一个名为smartstore/smartsync的功能,该功能需要主干型号/集合,并将其保存到本地存储以供脱机访问

您猜对了,我们想在混合应用程序的其余部分使用angularjs

正确的问题


-Sree

您应该查看带有parse的angularJS样板文件。解析类似于主干,但不完全是主干。这就是我开始构思angularJS backboneJS项目的地方

为什么要使用主干模型,angular中有$resource,可以非常轻松地使用RESTTry直接与服务器端模型集成,并使用主干来处理模型和集合。由于下划线支持,它非常容易上瘾。我认为这回ng的一个主要问题是getter和Setters的事件问题这是怎么结束的?你成功了吗?请介绍一下这个有趣话题的最新情况。与主干网的模型和集合相比,Angular与restful后端的接口能力较差。您在这方面取得了进展吗?结果如何?在这方面有进展吗?如果这能起作用我想这是对skaterdav85的回答Sweet example@Tenphi的回应我想这就是你所面临问题的答案:)根据你与谁交谈,服务的重点是抽象出处理数据的逻辑。然后,控制器负责装饰视图。在本例中,您需要将解析、排序和转换数据的逻辑放入该控制器。