使用Typescript的javascript函数中的Angular Scope
Angular Scope in javascript function with Typescript
我将Typescript与Angular和Breezejs一起使用。
class CounterController {
count: number = 0;
static $inject = ['$scope'];
constructor($scope) {
$scope.vm = this;
}
setCount14(): void {
this.count = 14; // works
}
getQuestions(): void {
var manager = new breeze.EntityManager('/breeze/dbentities');
var query = breeze.EntityQuery.from("Corporations").where("Name", "startsWith", "Zen");
manager.executeQuery(query)
.then(querySucceeded);
function querySucceeded(data) {
this.count= 1; // works not!
}
}
}
如何正确访问querySucceeded
函数中的count
属性?
编辑:更好:必须有一种方法将typescript函数传递给executeQuery(query).then
?
解决方案:将Typescript函数作为Javascript函数传递
然后调用scope.$apply()
确实应用了绑定。
请改用(data) => { this.count = 1; }
。否则你的"this"就没有正确的范围。OR作为替代方案:
var me = this;
function querySucceeded(data) {
me.count= 1; // works not!
}
例如:
getQuestions(): void {
var manager = new breeze.EntityManager('/breeze/dbentities');
var query = breeze.EntityQuery.from("Corporations").where("Name", "startsWith", "Zen");
manager.executeQuery(query)
.then((data) => { this.count= 1; });
}
相关文章:
- Angular$scope在模式窗口内不起作用
- 在将绑定应用于控制器之后,是否会发出Angular$scope事件
- Angular $scope更新、导航和 $scope.$apply() 后不绑定到视图
- 重复修改ng内Angular Scope内的对象
- 从Angular Scope中的Array中获取所有对象
- Angular$scope在更新时未将结果传递给父控制器
- Angular:$scope有效,但“;控制器为“;不触发ng更改事件
- 从自己的事件中访问angular$scope
- angular scope变量在动态创建的html中不起作用
- 无法访问Electron ipcRenderer内部实现的Angular$scope变量
- 指令中需要父 FormController 的 Angular (scope?) 问题
- 将异步 REST 调用 JSON 添加到 Angular $scope
- Issue With Angular $scope.Watch
- Angular$scope$注意(for in..)don'不起作用
- 在PageMod Firefox中获取Angular Scope
- Angular$scope$注意仅从表单(ng-model指令)更改的变量
- 有条件地信任angular scope变量中的html
- 使用Typescript的javascript函数中的Angular Scope
- Angular scope手表;在我的应用程序中不起作用
- 在初始加载时初始化Angular$scope