我在angular .config $ stateProvider中有一个状态,我希望onEnter方法可以访问状态的控制器$ scope。
我的州声明如下:
c_my_string constant char := 'abc';
控制器看起来像这样:
.config(function($stateProvider, $urlRouterProvider) {
$stateProvider
.state('panda1', {
url: '/panda/',
templateUrl: 'templates/panda.html',
controller: 'pandaCtrl',
onEnter: onEnterPanda
})
.state(...) //bunch of other states
.state(...)
}
我希望onEnterPanda功能看起来像这样
.controller('panda1IntroCtrl',function($scope) {
$scope.name = "pandaboy1";
})
我无法在onEnterPanda函数中找到对此对象内部$ scope的引用。
我也知道$ scop可能是可以接受的:
function onEnterPanda() {
var scope = this.getController().get$Scope(); //would be nice
console.log(scope.name); //pandaboy1
scope.name = 'pandaboy2';
console.log(scope.name); //pandaboy2
}
但这不是正确答案。
答案 0 :(得分:0)
我不清楚你到底想要做什么。但是,如果我理解正确,你想根据某些条件改变控制器设置。最简单的方法是使用一些服务来提供/设置这些条件。
state('home', {
templateUrl: 'partials/main.html',
controller:'panda1IntroCtrl',
....
},
resolve:{
info:'infoSvc',
loadProfile:function(info){
return info.setMessage("name 2");
}
}
}
然后在你的mainViewCtl中你可以做到
.controller('panda1IntroCtrl',[ '$scope','infoSvc', function($scope, info) {
$scope.name = info.getMessage();
})
答案 1 :(得分:0)
您可以在HTML ng-init 属性中放置方法。进入视图时将调用此函数。
例如
<ion-content ng-controller="pandaCtrl" ng-init="PandaSayHi()">...</ion-content>