0

我想将 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() {}
})

也可以:)

谢谢你的帮助

编辑:我只想返回一个对象 {} 并且这个对象可以通过装饰器或其他东西访问

4

1 回答 1

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>

举个例子

于 2015-03-26T12:01:55.373 回答