2015-11-08 61 views
1

我想通过一个函数在控制器属性中添加一个值。 做这样的事情:stateProvider - 控制器属性

.state('integrator.optionCommandTabContent', { 
    url: '/integrator/optionCommandTabContent/:optionId/:ctrlName', 
    views: { 
     '[email protected]': { 
      templateUrl: '../../../angular-app/components/integrator/integrator-conf/option-conf/commands-tab/command-tab.html', 
      controller: function ($stateParams){        
       return $stateParams.ctrlName.toString();       
      }, 
      controllerAs: 'ctrl', 
      resolve: { 
       optionId: function($stateParams){ 
        return $stateParams.optionId; 
       } 
      } 
     } 
    } 
}); 

好像控制器属性没有得到函数的返回值。是否有可能做这样的事情,但以另一种方式?

回答

0

A controller不应该返回任何东西。它应该提供操作并仅执行一些初始化和销毁​​操作。例如。

controller: function ($stateParams, $scope, someService){  
    // naive sync init 
    this.items = someService.load($sateParams.id); 
    // example of action 
    this.edit = function(item) { 
     ... 
    } 
    // destroy on view leave 
    $scope.$on('$on', function(){ 
     ... 
    }); 
}, 

,并可能INT视图消耗

<li ng-repeat="item in ctrl.items"> ... 
<button ng-click="ctrl.edit(item) ...