在 AngularJS 中从 Controller 返回范围
Returning scope from Controller in AngularJS
我想将 Controller 的 return 值(始终是一个对象)绑定到范围。
而不是:
$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() {}
})
也可以:)
感谢您的帮助
编辑:
我只想 returning 一个对象 {} 并且这个对象可以通过装饰器或其他东西访问
您可以通过以下方式在控制器中扩展范围:
angular
.module("myModule", [])
.controller("MyController", ["$scope", function($scope) {
angular.extend(
$scope,
{
test: 2,
do: function() { return 3;}
}
);
}]);
然后像这样使用它
<div ng-controller="MyController">
{{test}}
{{do()}}
</div>
我想将 Controller 的 return 值(始终是一个对象)绑定到范围。
而不是:
$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() {}
})
也可以:)
感谢您的帮助
编辑: 我只想 returning 一个对象 {} 并且这个对象可以通过装饰器或其他东西访问
您可以通过以下方式在控制器中扩展范围:
angular
.module("myModule", [])
.controller("MyController", ["$scope", function($scope) {
angular.extend(
$scope,
{
test: 2,
do: function() { return 3;}
}
);
}]);
然后像这样使用它
<div ng-controller="MyController">
{{test}}
{{do()}}
</div>