数据绑定到注入的共享模型

时间:2014-11-19 21:44:11

标签: angularjs angularjs-service

我正在尝试单独学习Angular,并希望学习工厂方法。我已经定义了一个应用程序,我认为这样的工厂是这样的:

var app = angular.module("MyPlayground", []);

app.factory('sharedModel', [

function() {
  var sharedModel = {
    config: {
      name: "My Playground",
      number: 123
    }
  };
  return sharedModel;
}
]);

然后我定义了一个像这样的控制器:

  var MainController = function($scope, sharedModel) {
    console.log(sharedModel);
    $scope = sharedModel;
    console.log($scope);
    console.log($scope.config);
    console.log($scope.config.name);
  }
  MainController.$inject = ['$scope', 'sharedModel'];

  app.controller('MainController', MainController);

当我运行它时,我可以在控制台中看到我的对象,它有一个名为config的属性,其中包含指定的名称和数字。

然后,在我的HTML中我想调用这个名字,所以我试试这个:

<h1>{{ config.name }}</h1>

但我能看到的只是一个空白屏幕。控制台中没有错误,并且使用了大量的console.log我可以在控制台中看到我的值OK $ scope.config.name

我甚至试过following a simple tutorial on thinkster.io但得到了“错误:[ng:areq] Argument'MainController'不是函数,未定义”,所以也许不那么简单......

我一直在Plunker上这样做,如果这有助于明白我的意思。非常感谢对此的任何见解 - 只想了解一切。

1 个答案:

答案 0 :(得分:1)

我不认为压缩范围是一个好主意。为什么不简单?

  var MainController = function($scope, sharedModel) {
    console.log(sharedModel);
    $scope.sharedModel = sharedModel; 
    $scope.config =  sharedModel.config;
  }