【问题标题】:Creating models with AngularJS使用 AngularJS 创建模型
【发布时间】:2013-08-27 17:50:56
【问题描述】:

我正在尝试使用 AngularJS 创建一个模型,Backbone 有能力这样做:

User = Backbone.Model.extend({

defaults: function() {
  return {
      "name": "finding name...",
      "id" : "",
      "age" : "",
      "gender" : ""
    };
 };

所以我以后可以做类似var user = new User();的事情

我找到了这个backbone-style models in angularjs? 而我只是想验证除了通过工厂之外没有其他方法可以做到这一点?

【问题讨论】:

  • 如果您需要更改处理数据的方式,请查看“工厂”和“服务”等所有提供者,但是,您还必须记住,通常会存在这样的模型在 html 和绑定的 $scope 中。我只会推入您的 $scope 数组并 $watch 以保持持久性。如果你有一种特殊的方式想在 Angular 之外处理数据,只需使用常规对象,因为在这种情况下,Backbone 只是原型的包装器。

标签: javascript model-view-controller angularjs


【解决方案1】:

您可以使用模块的 value 方法来存储函数,而不是让工厂返回这样的函数:

var myApp = angular.module('myApp', []);

myApp.value('User', function () {
        return {
            "name": "finding name...",
            "id": "",
            "age": "",
            "gender": ""
        };
});

function ctrl($scope, User) {
    var user = new User();
    console.log(user);
}

【讨论】:

    【解决方案2】:

    您可以使用工厂返回一个函数,然后您就可以使用关键字new 来创建一个新对象。

    var myApp = angular.module('myApp', []);
    myApp.factory('User', function () {
        return function () {
            return {
                "name": "finding name...",
                "id": "",
                "age": "",
                "gender": ""
            };
        };
    });
    
    function ctrl($scope, User) {
        var user = new User();
        console.log(user);
    }
    

    【讨论】:

      猜你喜欢
      • 2016-03-05
      • 1970-01-01
      • 2020-06-02
      • 2015-05-20
      • 1970-01-01
      • 2017-10-07
      • 1970-01-01
      • 2015-05-21
      • 1970-01-01
      相关资源
      最近更新 更多