我正在尝试为角度组件实现绑定属性,如组件文档和本示例中所述。
不幸的是,我$onInit
从未使用过在标签级别或方法中分配的值。当我将其用作模型值时,也不会打印该值。
我的绑定定义:
(function(angular) {
'use strict';
function SearchResultController($scope, $element, $attrs) {
var ctrl = this;
ctrl.searchFor = 'nohting-ctor';
ctrl.$onInit = function() {
console.log('SearchResultController.$onInit: searchFor='+ctrl.searchFor);
ctrl.searchFor = 'nothing-int';
};
}
angular.module('myApp').component('searchResult', {
templateUrl: 'searchResult.html',
controller: SearchResultController,
bindings: {
searchFor: '<'
}
});
})(window.angular);
模板:
<p>SearchResult for <span ng-model="$ctrl.searchFor"</span></span></p>
使用方法:
<h1>Main Window</h1>
<search-input on-start-search="$ctrl.startSearch(value)"></search-input>
<search-result search-for="nothing-ext"></search-result>
没有显示任何nothing-*
值。
任何想法出什么事了吗?
您使用的组件不正确。如果要传递字符串,则应使用引号将其引起来:
<search-result search-for="'nothing-ext'"></search-result>
然后下一个问题是这条线
<p>SearchResult for <span ng-model="$ctrl.searchFor"</span></span></p>
没有意义,因为ngModel指令仅对输入控件有效。您想要ngBind还是simple {{ $ctrl.searchFor }}
:
<p>SearchResult for <span ng-bind="$ctrl.searchFor"</span></span></p>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句