我有以下(简化)指令,我想用Typescript编写它(仍然不是Angular 2.0)。
<Route path='/fixed/:fixedSearch' component={FixedSearchComponent} onEnter={checkFixedSearch} />
function checkFixedSearch(nextState, replace) {
if (*Compare :fixedSearch with predefined values*) {
replace('/search') // move to search route if fixed values don't match
}
}
现在,我如何将控制器注入我的Typescript代码:
angular
.module('app.components')
.directive('list', List);
function List() {
return {
restrict: 'E',
templateUrl: 'modules/components/List/List.html',
controller: ListController,
controllerAs: 'vm',
require: ['ngModel', '?^form'],
bindToController: true,
link: LinkFunction,
scope: {
'id': '@',
'name': '@'
}
};
function LinkFunction(scope, element, attrs, controllers) {
var ngModelCtrl = controllers[0];
var formCtrl = controllers[1];
ngModelCtrl.$isEmpty = function(value) {
return !value || value.length === 0;
};
ngModelCtrl.$render = function() {
scope.vm.form = formCtrl;
scope.vm.model = ngModelCtrl;
scope.vm.selected = ngModelCtrl.$modelValue;
};
// ... more controller functions
}
})();
希望有人知道答案,或者可以给我一个如何实现目标的提示,因为我在网上搜了几个小时,但没有找到任何解决办法。
答案 0 :(得分:1)
使用“require”,如此处所述[{3}} 请参阅组件间通信