我想将Controller的返回值(总是一个对象)绑定到范围。
而不是:
$scope.test = "test"
像这样:
return {
test: "test"
}
所以我可以在我的视图中使用它,如
{{ test }}
我想使用它的原因是因为我的指令,服务等仍然像这样工作。
(function(module) {
var SomeFactory = function SomeFactory(
) {
var test = 2;
var getTest = function getTest() {
return test;
}
return {
getTest : getTest
}
}
module.factory('someFactory', [
SomeFactory
])
})(angular.module('app'))
所以我的控制器应该是这样的:
(function(module) {
var SomeController = function SomeController(
$state
) {
var loggedIn = true;
var isLoggedIn = function isLoggedIn() {
return loggedIn;
}
return {
isLoggedIn : isLoggedIn
}
}
module.controller('SomeController', [
'$state',
SomeController
])
})(angular.module('app'))
有人可以提供帮助。
另一种解决方案,如:
$scope.add({
test: 2,
do: function() {}
})
也没问题:)
感谢您的帮助
编辑: 我只想返回一个对象{},这个对象可以通过装饰器或其他东西访问
答案 0 :(得分:0)
您可以通过以下方式扩展控制器中的范围:
angular
.module("myModule", [])
.controller("MyController", ["$scope", function($scope) {
angular.extend(
$scope,
{
test: 2,
do: function() { return 3;}
}
);
}]);
然后像这样使用它
<div ng-controller="MyController">
{{test}}
{{do()}}
</div>