设置:我希望有一个服务,多个控制器可以查询使用$ http提取的数据.最初的解决方案是使用此处建议的promises .
问题:每次控制器查询服务时,服务都会返回$ http保证,从而导致多次查询只是从远程服务器中反复提取相同的数据.
解决方案:服务函数返回数据或下面的承诺.并由控制器进行相应的检查和操作.
app.factory('myService', function($http) {
var items = [];
var myService = {
getItems: function() {
// if items has content, return items; otherwise, return promise.
if (items.length > 0) {
return items;
} else {
var promise = $http.get('test.json').then(function (response) {
// fill up items with result, so next query just returns items.
for(var i=0;i<response.data.length;i++){
items.push(response.data[i]);
}
return items;
});
// Return the promise to the controller
return promise;
} …Run Code Online (Sandbox Code Playgroud) 说,我有一个带有文本字段的模型:
class SomeModel
keyword=models.CharField(null=True, max_length=255)
Run Code Online (Sandbox Code Playgroud)
现在,我知道如何检查参数字符串(让我们调用变量“querystring”是否包含在 field 关键字中:
results = SomeModel.objects.filter(keyword_icontains=querystring).all()
Run Code Online (Sandbox Code Playgroud)
我在django 文档中找到的
问题,如何过滤字段值包含在查询字符串变量中的对象?
抱歉,如果我的问题令人困惑......也许一个例子会澄清......在django文档中,如果我的关键字字段包含,例如,'python-django',那么,对于包含'django'的查询字符串,我可以提取包含该字段的对象
results=SomeModel.objects.filter(keyword_icontains=querystring).all()
or results=SomeModel.objets.filter(keyword_icontains='django').all()
Run Code Online (Sandbox Code Playgroud)
但是说,我想提取关键字字段包含在查询字符串中的所有行/对象?例如,如果查询字符串包含“在 django 中,我如何创建过滤器”?然后我希望结果包含关键字字段具有值“django”、“filter”等的所有对象...