Javascript 从控制器读取ng init数据

Javascript 从控制器读取ng init数据,javascript,angularjs,Javascript,Angularjs,我是angularJS新手,我想从contoller访问ng init数据,但总是返回未定义的,这里是我的代码 HTML <div class="row" ng-controller="IFuseController" ng-init="myText='Hello World!'"> .... </div> 有什么想法吗?发生这种情况是因为您的控制器在加载时被调用,而此时您没有为变量myText设置值 加载文本后,需要触发一个事件 演示 var uniqcApp=an

我是angularJS新手,我想从contoller访问ng init数据,但总是返回未定义的,这里是我的代码

HTML

<div class="row" ng-controller="IFuseController" ng-init="myText='Hello World!'">
....
</div>

有什么想法吗?

发生这种情况是因为您的控制器在加载时被调用,而此时您没有为变量myText设置值

加载文本后,需要触发一个事件

演示

var uniqcApp=angular.module('uniqueApp',[]);
uniqcApp.controller('IFuseController',函数($scope){
$scope.read=函数(){
log(“Cingda”+$scope.myText);
};
});

读取初始值

发生这种情况是因为您的控制器在加载时被调用,而此时您没有为变量myText设置值

加载文本后,需要触发一个事件

演示

var uniqcApp=angular.module('uniqueApp',[]);
uniqcApp.controller('IFuseController',函数($scope){
$scope.read=函数(){
log(“Cingda”+$scope.myText);
};
});

读取初始值

您可以强制将
ng init
结果绑定到
$scope

var uniqcApp=angular.module('uniqueApp',[]);
uniqcApp.controller('IFuseController',函数($scope){
var el=angular.element(document.querySelector('[ng controller=IFuseController]');
var attr=el[0]。getAttribute('ng-init');
$scope.$eval(attr);
log(“Cingda”+$scope.myText);
});

您可以强制将
ng init
结果绑定到
$scope

var uniqcApp=angular.module('uniqueApp',[]);
uniqcApp.controller('IFuseController',函数($scope){
var el=angular.element(document.querySelector('[ng controller=IFuseController]');
var attr=el[0]。getAttribute('ng-init');
$scope.$eval(attr);
log(“Cingda”+$scope.myText);
});

为什么不在控制器端初始化数据? 如果您仍然想这样做,可以使用$watch

$scope.$watch('myText',function(newVal){
   alert(newVal);
})

为什么不在控制器端初始化数据呢? 如果您仍然想这样做,可以使用$watch

$scope.$watch('myText',function(newVal){
   alert(newVal);
})

为什么要这样使用ng init?在大多数情况下,这不是正确的解决方案。。。你想在这里实现什么?你找到解决方案了吗?为什么要这样使用ng init?在大多数情况下,这不是正确的解决方案。。。你想在这里实现什么?你得到解决方案了吗谢谢你的解释,但是当角度控制器首次加载时,将数据传递到角度控制器的最佳方式是什么?你可以将其放在角度常数/服务中/factory@GustiArya答案有用吗谢谢你的解释,但是,当角度控制器第一次加载时,将数据传递给它的最佳方式是什么?您可以将其放置在角度常数/服务中/factory@GustiArya答案有用吗