获取控制器内的视图名称

时间:2015-06-26 12:39:28

标签: javascript angularjs angular-ui-router

我有以下状态配置:

pmi(word1,word2) = log [probability(number of times both words appears in a document together)/probability(word1)*probability(word2)].

如何在控制器内获取视图名称?

2 个答案:

答案 0 :(得分:1)

您可以在帮助方法$state.get()link to docs)的帮助下访问状态配置对象。如果您没有将路由名称指定为第一个参数,那么它将返回所有路由的整个配置。

app.controller('AppCtrl', function ($state) {

  var stateConfig = $state.get('main.content');

});

更新

这似乎有点棘手而且不是一个可靠的解决方案,但是当您为视图设置容器时,您可以直接指定它的名称<div ui-view="content-one"></div>,因此您可以尝试查询此元素使用以下方式设置视图:

var element = angular.element('[ui-view]');
var name = element.attr('ui-view'); // 'content-one'

但请注意,您可能在网页上有多个观看次数。所以以下会更安全:

<div class="main-content" ui-view="content-one"></div>

JS:

var element = angular.element('.main-content');
var name = element.attr('ui-view'); // 'content-one'

答案 1 :(得分:0)

您可以使用$viewcontentLoading$viewContentLoaded事件来获取当前viewName。这是一段代码片段

$rootScope.$on('$viewContentLoading', function(event, viewName, viewContent){
    console.log('current view name : ', viewName);
});