Javascript AngularJS ui路由器:访问子作用域变量
我有这样的路线:Javascript AngularJS ui路由器:访问子作用域变量,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,我有这样的路线: .config(function config($stateProvider) { $stateProvider.state('articles', { url: '/articles', views: { main: { controller: 'ArticlesCtrl', templateUrl: 'actions/articles/articles.html' } } }) .s
.config(function config($stateProvider) {
$stateProvider.state('articles', {
url: '/articles',
views: {
main: {
controller: 'ArticlesCtrl',
templateUrl: 'actions/articles/articles.html'
}
}
})
.state('articles.edit', {
url: '/upd/:itemId',
views: {
'': {
templateUrl: 'actions/articles/articles.edit.html',
controller: 'ArticlesEditCtrl',
}
}
})
.state('articles.add', {
url: '/add/news/',
views: {
'': {
templateUrl: 'actions/articles/articles.add.html',
controller: 'ArticlesAddCtrl',
}
}
})
})
我正在更新
文章
状态中的一些数据,如何使用状态文章强制子控制器。编辑
以使用第一个状态控制器的数据更新它的$scope.someVar
,而不使用服务?解决此问题的最佳方法是哪种?由于控制器函数是“新”对象,您可以使用控制器原型通过这样的对象传递数据
var obj={}
函数ArticlesCtrl($scope){
obj.ArticlesCtrl=ArticlesCtrl.prototype
ArticlesCtrl.prototype.passData=函数(数据){
//…处理从ArticlesEditCtrl传递的数据
}
}
函数articlesditctrl(){
obj.ArticlesCtrl.passData('此处有一些数据')
}
.config(函数配置($stateProvider){
$stateProvider.state('articles'{
url:“/articles”,
观点:{
主要内容:{
控制器:“ArticlesCtrl”,
templateUrl:'actions/articles/articles.html'
}
}
})
.state('articles.edit'{
url:“/upd/:itemId”,
观点:{
'': {
templateUrl:'actions/articles/articles.edit.html',
控制器:“articlesditctrl”,
}
}
})
.state('articles.add'{
url:“/add/news/”,
观点:{
'': {
templateUrl:'actions/articles/articles.add.html',
控制器:'ArticlesAddCtrl',
}
}
})
})
将函数解析如下
$stateProvider.state('articles', {
url: '/articles',
views: {
main: {
controller: 'ArticlesCtrl',
templateUrl: 'actions/articles/articles.html'
}resolve: {
time: function AnyFunction(SessionTimer)
{
SessionTimer.startTimer();
}
}
您需要
$broadcast
检查听起来您需要组织路线,以便将“文章”作为父路线(摘要)和子路线,如编辑和添加。在这种情况下,您可以将公共逻辑放在“抽象”控制器中。@singhakash这是个坏主意。您能提供一个变量示例吗?