在 TypeScript 中带有函数参数的角度指令
Angular directive with function parameter in TypeScript
我正在尝试将 Angular 函数参数添加到用 TypeScript 编写的指令中,但我必须没有语法权限。 这是我的指令的一个例子:
export class NewUserDirective implements ng.IDirective {
public restrict: string = "E";
public replace: boolean = true;
public templateUrl: string = '/views/_dialogs/newUserDialog.html';
public controller = Directives.NewUserController;
public controllerAs: string = 'Ctrl';
public bindToController: boolean = true;
public scope: any = {
showDialog: '=',
saveInProgress: '=',
onSuccessCallback: '&',
onClosingCallback: '&'
};
}
这是我的控制器的一个片段:
export class NewUserController {
static $inject = ["$scope", "$q", "UserServices"];
public showDialog: boolean;
public saveInProgress: boolean;
public onSuccessCallback: () => void;
public onClosingCallback: () => void;
....
public save(): void {
//Flag as saving
this.saveInProgress = true;
//Save the plan
this.UserServices.createUser(this.newUser).then(x => {
//When finished, hide the modal
this.showDialog = false;
//Let parent know new user is created
this.onSuccessCallback();
});
}
}
除了父控制器中的函数参数外,一切都在工作。 我在指令实现中尝试了几种不同的语法,如下所示:
<new-user-directive on-success-callback="loadData()" ...
而这个:
<new-user-directive on-success-callback="loadData" ...
您是否正在使用控制器对于具有loadData
方法的外部控制器?如果是这样,那么你需要像这样创建你的指令(假设你将我们的外部控制器命名为"Ctrl")。注意前面的Ctrl.
loadData()
<new-user-directive on-success-callback="Ctrl.loadData()" ...
你有controllerAs = 'Ctrl' 所以在成功回调="Ctrl.loadData()"
这些方法通过$scope传递,而不是在控制器上传递。您应该创建一个构造函数:
constructor(private $scope, ....){
}
并从$scope调用该方法,如下所示:
this.$scope.onSuccessCallback();
相关文章:
- 参数变量出现ngTable指令问题
- 如何在angularjs中传递对象字段作为指令参数
- 角度指令控制器:参数不是函数,未定义
- 在嵌套递归指令中将参数传递给父控制器方法
- Angularjs将函数从控制器传递到指令(或从指令调用控制器函数)-带参数
- 在更改时选择,插入类似函数的参数或指令之间的差异
- 角度指令的参数相同
- 角度调用父函数,其参数来自两个级别深的指令
- 将对象作为参数传递给指令
- angularjs指令绑定带参数的函数
- 从指令调用控制器函数(使用从指令传递的参数)
- AngularJS 指令参数 “ctrls”
- AngularJS指令接受参数
- 在Angular链接函数和访问指令参数中使用$compile
- 在Angular指令参数中使用HTML
- 带空格的AngularJS自定义指令参数
- Angular指令参数问题
- 指令参数嵌套控制器简单示例
- 不能在vue js中访问指令参数
- 是否可以传递一个带有vars的json对象作为angularjs指令参数