修改“this"在Angular控制器中使用bind
Modifying "this" inside Angular controller using bind
我正在使用Angular的新路由器组件和js。我有多个控制器,如下所示。
我要做的是对所有控制器应用一个函数,我不需要在每个控制器中都这样做吗
function HomeController (authService, factoryClient) {
console.log ('this is home controller');
this = doCommonController.bind(this); //generates an error
//here this should contain currentUser, authService, logout and testVar
console.log(this);
}
,函数为:
var doCommonController = function (authService, currentUser) {
this.testVar = 'value';
this.authService = authService;
this.currentUser = currentUser;
this.logout = this.authService.logout;
}
另外,我如何通过authService和factoryClient从控制器在doCommonController中可用?
你需要使用。call()而不是。bind(),也不要给这个赋任何无效的值
function HomeController(authService, factoryClient) {
console.log('this is home controller');
var currentUser;
doCommonController.call(this, authService, currentUser); //generates an error
//here this should contain currentUser, authService, logout and testVar
console.log(this);
}
相关文章:
- 在指令控制器中使用$attrs时出现问题
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 从控制器返回后Ajax启动事件激发
- 直接在函数声明上使用function.prototype.bind
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- 如何在单击复选框后调用控制器方法
- 在控制器和数据对象之间同步数据
- 将Javascript数组发送到控制器ASP.NET MVC
- 角度控制器结构
- 如何在Jquery中发布后将值从视图返回到控制器
- 将值从html传递到AngularJS控制器
- 从我的控制器返回一个不同于200的代码以触发ajax错误,这被认为是一种好的做法吗
- 从控制器继承了隔离的作用域以生成可重用的指令
- Flash Uploadify在调用我的MVC控制器时没有保留会话/授权
- 为什么不't我的变量在我的控制器中填充后在我的视图中呈现
- Nodejs API控制器,用于在API之间切换
- 如何在Angular单元测试中从另一个控制器的rootScope将方法添加到rootScope中
- Ng-bind在控制器中显示未定义
- 使用ng-bind-html时,Ng-click不能在控制器内部工作
- 修改“this"在Angular控制器中使用bind