0
我正在使用AngularJS和Kendo UI的应用程序。我在我的控制器代码的一个类似于此:
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
var items = [{ text: "Item 1", value: "1" }, { text: "Item 2", value: "2" }];
$("#dropdownlist").kendoDropDownList({
dataTextField: "text",
dataValueField: "value",
dataSource: items,
index: 0,
dataBound: function(e) {
$scope.myVariable = this.value();
$scope.$apply();
}
});
});
正如你可以看到,下拉列表控件被绑定到本地数据。
如果我尝试运行代码,出现以下错误:$ rootScope:inprog。 由于可能只有一个$ apply操作正在进行,因此引发此错误。我没有在我的代码中的任何其他地方调用$ scope($ apply(),所以我假定由于控制器初始化,第一个$ apply操作被调用。
如果我删除了$ scope。$ apply(),那么程序工作正常,但我不明白为什么。
我的问题是:该函数不应该被称为dataBound事件结果的函数在Angular上下文之外吗?
在此先感谢!
谢谢你的回应,我真的不明白,为什么功能,从那里我调用$范围。$适用()被认为是在Angular环境中。即使我删除了$ scope,程序也能正常工作。$ apply()。出于安全原因,我应该使用您的方法吗? – five
不需要。如果不是在角度上下文,那么只有去它 –