我们的应用程序中有一个Kendo网格。我们还使用了Angular JS。 这是我们要从策略列表中选择定价策略的编辑器。 策略具有ID和标题。 我们希望能够在关闭编辑器(选择下拉列表)时更新数据库。 问题在于我们的编辑器不会更新模型。 这是我们的编辑器:
editor: function(container, options) {
$(
'<fare-edit ng-if="!dataItem.IsDisabled" fare-id="dataItem.FareID" route="dataItem.Route" fare-title="dataItem.Price" ng-model="dataItem.FareID" ></fare-edit>')
.appendTo(container);
}
票价编辑是一项指令: 这是它的javascript:
app.directive('fareEdit', ['$http', function($http) {
return {
restict: 'E',
templateUrl: 'app/directives/fare-edit.html',
scope: {
ngModel: '=',
route: '=',
fareTitle: '=',
ngChange:'&'
},
require:'ngModel',
replace:true,
transclude: false,
link: function(scope) {
scope.fare = scope.ngModel;
scope.isEditing = false;
scope.options = [];
scope.onFareChanged = onFareChanged;
function onFareChanged() {
if (!scope.isEditing) return;
scope.ngChange();
scope.isEditing = false;
}
(function() {
var getOptions = Promise.resolve();
if (scope.options.length === 0) {
getOptions = $http.get("/Fare/GetFare?SearchField=Route&Value=" + scope.route).then(function(result) {
scope.options = result.data.Entities;
});
}
getOptions.then(function() {
scope.isEditing = true;
});
})();
}
}
}]);
这是它的html文件:
<div>
<div class="row">
<div class="col-md-11">
<select ng-if="isEditing" style="width: 70%;" ng-options="item as item.FareTitle for item in options" ng-model="fare" ng-change="onFareChanged()"></select>
</div>
</div>
在Kendo网格中编辑单元格之后,我们是否仍然可以调用函数?以及为什么不更新模型(FareID)?