Ich kann nicht verstehen, warum die Variable in der Richtlinie Controller nicht definiert ist:Warum sind Variablen im Direktiven-Controller nicht definiert?
'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>
Warum ist vm.date nicht definiert? Wie man das macht, dass es definiert wurde?
Ich habe versucht, die gleiche Methode mit link
zu verwenden. Kein Problem.
Ich benutze $ Scope für Tests. Danke für die Hilfe! Es funktioniert mit '$ onInit'. Ich denke 'vm. $ OnInit' ist schöner. – raciasolvo