Я немного новичок в angularjs. Я пишу директиву, но я не понимаю, как работает bindToController. Я прочитал эту полезную статью http://blog.thoughtram.io/angularjs/2015/01/02/exploring-angular-1.3-bindToController.html, но я не могу понять, почему в следующем примере я не определился.Директива обязательна не определена
.directive('firstDirective', function(){
return {
restrict: 'E',
replace: true,
scope: true,
bindToController: {
directiveInput:'='
},
templateUrl: 'components/directive-tree/directive-tree.html',
controllerAs: 'directiveTreeCtrl',
controller: function($scope, $uibModal){
var self = this;
self.selected = null;
console.log(self.directiveInput); //HERE IS THE UNDEFINED
$scope.modalOptions = {
windowClass: 'semi-modal',
}
this.openDirectiveModal = function(object, index) {
//Other irrelevant code
}
}
}
});
После этого я могу использовать вход для шаблона HTML без каких-либо проблем.
<ul>
<li ng-repeat="object in directiveTreeCtrl.directiveInput">
{{object.Id}} {{object.Name}}
</li>
</ul>
Почему в шаблоне HTML можно использовать directiveInput и это экземпляр с правильными значениями и мой console.log показать мне «не определено»?
Возможно, это глупый вопрос. Спасибо
Вы должны использовать директиву, как это <первый-директива> first-directive> 'в вашем html. [Официальная документация по угловым директивам] (https://docs.angularjs.org/guide/directive) более полная. –
@TomShen я использую ее правильно. Единственное сомнение в том, что у меня есть причина, почему я получаю неопределенное в этом console.log(), и я могу использовать этот объект после моего html, когда я его делаю – acostela