반응형
ng-init으로 설정된 변수가 AngularJS의 $scope에서 정의되지 않은 이유는 무엇입니까?
내 뷰에 설정할 변수가 있습니다.ng-init
컨트롤러로 접속하려고 합니다.하지만 접속하려고 하면,undefined
.
관련 코드 조각:
제 견해:
<div ng-controller="MyCtrl">
<div ng-init="pageTitle = 'kittens'">
</div>
</div>
내 컨트롤러:
var MyCtrl;
MyCtrl = function($scope) {
return console.log($scope.pageTitle);
};
내가 뭘 놓쳤지?
변수가 init될 때까지 기다립니다.
$scope.$watch('pageTitle', function () {
console.log($scope.pageTitle);
});
JavaScript가 함수를 정의하는 방법을 활용하여 $watch(jsfiddle) 대신 ng-init 함수를 사용할 수도 있습니다.
<div ng-app>
<div ng-controller="MyCtrl" ng-init="pageTitleEquals('kittens')">
Page title is {{ pageTitle }}
</div>
</div>
컨트롤러:
var MyCtrl = function($scope) {
$scope.pageTitleEquals = function(title) {
$scope.pageTitle = title;
}
};
이 질문도 비슷합니다.ng-init을 사용하여 스코프 속성을 설정하려면 어떻게 해야 합니까?
pageTitle 변수가 $scope 객체에 추가되기 전에 컨트롤러가 생성되고 있습니다.
생성자처럼 "싱글 타임 초기화"를 수행하므로 변수를 사용한 후 워치를 바인딩 해제할 것을 권장합니다.
var pageTitleWatch = $scope.$watch('pageTitle', function () {
console.log($scope.pageTitle);
// Now just unbind it after doing your logic
pageTitleWatch();
});
언급URL : https://stackoverflow.com/questions/18608161/why-is-the-variable-set-in-ng-init-undefined-in-scope-in-angularjs
반응형
'programing' 카테고리의 다른 글
HttpServletRequest에서 JSON 오브젝트 리터럴 취득 (0) | 2023.03.11 |
---|---|
개체가 React 하위 개체로 유효하지 않습니다(찾은 개체: [object Promise]). (0) | 2023.03.11 |
jQuery.ajax() 사용 시 오류는 어떻게 처리합니까? (0) | 2023.03.11 |
ngSrc 경로가 404로 해결된 경우 기본값으로 폴백하는 방법이 있습니까? (0) | 2023.03.11 |
useContext를 사용하여 컨텍스트 값을 변경하려면 어떻게 해야 합니까? (0) | 2023.03.11 |