3
変数がディレクティブコントローラに定義されていない理由を私は理解できません。変数がディレクティブコントローラで定義されていないのはなぜですか?
'use strict';
angular
.module('app', [])
.directive('myExample', myExample, ['$scope']);
function myExample() {
var directive = {
restrict: 'E',
template: '<span>{{vm.date}}</span>',
scope: {},
controller: ExampleController,
controllerAs: 'vm',
bindToController: {
date: '@'
}
};
return directive;
}
function ExampleController($scope) {
var vm = this;
// I need here some code with vm.date
// BUT vm.date is undefined
// Why?
console.log('Ctrl: %s', vm.date);
$scope.$watch('vm.date', function (newValue, oldValue) {
// vm.date is 777
console.log('Ctrl: %s | %s', oldValue, newValue);
});
}
<body ng-app="app">
<my-example date="777"></my-example>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.0/angular.min.js"></script>
</body>
vm.dateが定義されていないのはなぜ?どのようにそれが定義されたことを行うには?
link
と同じ方法を使用しようとしました。問題ない。
私はテストに '$ scope'を使います。お手伝いありがとう!これは '$ onInit'で動作します。私は 'vm。$ onInit'がより良いと思います。 – raciasolvo