是否可以将指令传递给状态配置?

时间:2014-11-25 19:04:31

标签: angularjs

我有一个名为fightcard的指令app。在我的应用程序配置中,我使用ui-router来更改状态。这段代码有用......

$stateProvider

    .state('matches', {
        url: '/matches',
        template: '<fightcard matches="matches"></fightcard>'
    })

但是......我想知道控制器之类的状态是否只是传递指令而不是html模板。我想做这样的事情:

  $stateProvider

    .state('matches', {
        url: '/matches',
        directive: 'fightcard',
        directiveModels: ['matches']
    })

html模板选项并不是那么糟糕 - 它可能实际上是优越的 - 只是想知道是否有更多“角度方式”的替代方案,或者html模板可能是首选方法。每个匹配都有最佳游戏的子视图...可能最好让指令包含一个简单的html模板,如下所示:

    $stateProvider

    .state('matches', {
        url: '/matches',
        templateUrl: 'partials/matches.html'
    })

    .state('matches.games', {
        url: '/games',
        templateUrl: 'partials/games.html'
    })

matches.html模板

<fightcard matches="matches"></fightcard>

games.html模板

<h6>BEST OF 5 GAMES</h6> 
<div ng-repeat="gameModel in games">
    <game gamemodel="gameModel" class="centerText"></game>
</div>

1 个答案:

答案 0 :(得分:1)

将指令放在模板中是 在AngularJS中使用该指令的方式。

如果您想获得幻想,可以使用$stateProvider.state()方法扩展.decorator()来解析您的特殊配置并为您创建该模板,但它确实是一个关于使用该指令的几乎所有方法。