相关疑难解决方法(0)

使用ng-controller注入所需的依赖项

使用ui.router,我们有一个状态控制器:

controller('widget', function($repository, $stateParams){
    $scope.widget = $repository.get($stateParams.id);
})
Run Code Online (Sandbox Code Playgroud)

注册时间:

.state('widget',
       controller: 'widget',
       template: '/widgetTemplate.html'
Run Code Online (Sandbox Code Playgroud)

我们遇到了一个案例,我们希望将此控制器作为模板的一部分重用:

<div ng-controller="widget" ng-include="/widgetTemplate.html"></div>
Run Code Online (Sandbox Code Playgroud)

但似乎没有一种简单的方法可以使用正确的ID注入模拟的$ stateParams对象.就像是:

<div ng-controller="widget" ng-inject="{$stateParams: {id: 1234}}" ng-include="/widgetTemplate.html"></div>
Run Code Online (Sandbox Code Playgroud)

除了编写增强ng-controller或重构我们的代码以使用继承范围的自定义指令之外,是否有任何开箱即用的方法可以做到这一点?

angularjs angular-ui-router

5
推荐指数
1
解决办法
2208
查看次数

本地人可以用ng-controller注入控制器组吗?

参考下面的例子,有没有办法使用myCtrl而不是myCtrl2,将参数作为本地传递而不是附加到$ scope?

$控制服务执行完全相同包装现有控制器所需的操作,但它不能从模板访问.

<div ng-app>

  <script type="text/ng-template" id="/tpl.html">
    value of y: {{y}}
  </script>

  <div 
    ng-repeat='x in [1,2,3]' 
    ng-controller='myCtrl2'
    ng-include="'/tpl.html'">
  </div>

</div>
Run Code Online (Sandbox Code Playgroud)
function myCtrl($scope, x){
  $scope.y = x * 20;
}

function myCtrl2($scope){
  $scope.y = $scope.x * 20;
}
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/4Zmym/16/

javascript angularjs

4
推荐指数
1
解决办法
1790
查看次数

标签 统计

angularjs ×2

angular-ui-router ×1

javascript ×1