我正在尝试单独学习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上这样做,如果这有助于明白我的意思。非常感谢对此的任何见解 - 只想了解一切。
答案 0 :(得分:1)
我不认为压缩范围是一个好主意。为什么不简单?
var MainController = function($scope, sharedModel) {
console.log(sharedModel);
$scope.sharedModel = sharedModel;
$scope.config = sharedModel.config;
}