【发布时间】:2014-10-27 09:12:12
【问题描述】:
我希望从服务方法返回值到作用域中,以便在模板中使用和处理。
但我发现,我不能在服务中使用范围。 我可以使用 Rootscope,但我认为这不是正确的方法。
如何轻松地将价值从服务设置到范围?
感谢您的任何建议。
代码如下:
/**
* Init autocomplete dropdown menu for project list
*/
this.getProjectListForAutocomplete = function (container, options) {
$("#autocompleteProjects").kendoAutoComplete({
dataSource : {
type: "json",
serverFiltering: true,
transport: {
read: function (options) {
console.log("List");
console.log(options.data);
ApiService.doHttpRequest(
"POST",
$rootScope.apiBaseUrl + "gpsaddress/search",
requestParams
)
.success(function (data, status, headers, config) {
break;
}
})
.error(function (data, status, headers, config) {
});
}
}
},
dataTextField: "city" ,
dataValueField: "address.city",
filter: "contains",
minLength: 1,
change : function (e) {
console.log("change");
//console.log(e);
},
select : function (e) {
console.log("select");
var dataItem = this.dataItem(e.item.index());
console.log(dataItem);
// Here i need set scope in controller
}
});
};
【问题讨论】:
-
为什么不在服务中创建返回类型的方法并在控制器的范围内捕获返回值?
-
修改服务中的作用域对象将是一个糟糕的设计,因为控制器被要求与作用域交互,而服务旨在独立于用户界面和作用域
-
@AnikIslamAbhi 你能添加一些例子吗?我是 Angular 的新手。
-
先贴出你的代码
标签: javascript angularjs scope