小编Gio*_*oia的帖子

将Angular HTTP.get函数转换为服务

我正在尝试将HTTP.get我的Angular 函数转换controllers.js为服务services.js.

我发现的例子都有相互冲突的方式来实现服务,他们选择的名称令人困惑.此外,服务的实际角度文档使用的语法与所有示例的语法不同.我知道这很简单,但请帮帮我.

我有app.js,controllers.js,services.js,filters.js.

app.js

angular.module('MyApp', []).
    config(['$routeProvider', function($routeProvider)
        {
            $routeProvider.
                when('/bookslist', {templateUrl: 'partials/bookslist.html', controller:             BooksListCtrl}).
                otherwise({redirectTo: '/bookslist'});
        }
    ]);
Run Code Online (Sandbox Code Playgroud)

controllers.js

function BooksListCtrl($scope,$http) {
    $http.get('books.php?action=query').success(function(data) {
        $scope.books = data;
    });

    $scope.orderProp = 'author';
}
Run Code Online (Sandbox Code Playgroud)

service angularjs

46
推荐指数
1
解决办法
3万
查看次数

NDB中反向引用属性的替代方法是什么?

我已经阅读了这个问题以及简单明了的答案,但它在我的案例中没用,因为答案不考虑嵌套for.请看,代码:

class SuperCat(ndb.Model):

class Category(ndb.Model):
  supercat = ndb.KeyProperty(kind=SuperCat)

class SubCat(ndb.Model):
  category = ndb.KeyProperty(kind=Category)
Run Code Online (Sandbox Code Playgroud)

处理:

Categories = ndb.gql("SELECT * FROM Category WHERE supercat = :1", supercat_key)
self.generate('supercat.html', {'Categories': Categories})
Run Code Online (Sandbox Code Playgroud)

在模板中,使用旧的db.Model和back-reference属性就足够了:

{{ for Category in Categories }}
  {{ for SubCat in Category.subcat_set }} # this is the back-reference in action
Run Code Online (Sandbox Code Playgroud)

提供此类数据结构的同样简单的替代方法是什么?

google-app-engine app-engine-ndb

6
推荐指数
1
解决办法
2428
查看次数

App引擎NDB:如何访问属性的verbose_name

假设我有这个代码:

class A(ndb.Model):
    prop = ndb.StringProperty(verbose_name="Something")

m = A()
m.prop = "a string value"
Run Code Online (Sandbox Code Playgroud)

当然,如果我打印m.prop,它将输出"一个字符串值",而实际上它是一个StringProperty实例.因此无法以"正常"方式访问verbose_name,即m.prop._verbose_name.
我阅读了代码并找到了一种方法来访问它:m._properties["prop"]._verbose_name它可以工作,但它看起来很hacky o_o.
那么告诉我,还有另一种方法吗?
注意:我说的是NDB API,而不是旧的

python google-app-engine app-engine-ndb google-cloud-datastore

5
推荐指数
1
解决办法
626
查看次数

这个NDB查询的兼容版本是什么?

也许这是错的,但我总是对我的应用使用此查询:

cme_only = Comput.all().filter('__key__ =', cid.key())
Run Code Online (Sandbox Code Playgroud)

这个NDB查询的兼容版本是什么?元数据查询非常不同..

编辑:cid是一个实体,cme_only是一个可迭代的,我肯定只有一个值

cid = Comput.get_by_id(int(self.request.get('id')))
cme_only = Comput.all().filter('__key__ =', cid.key())
Run Code Online (Sandbox Code Playgroud)

然后在模板中:

{{ for Comput in cme_only }}
Run Code Online (Sandbox Code Playgroud)

我不喜欢它,但它已经足够了

google-app-engine app-engine-ndb

4
推荐指数
1
解决办法
517
查看次数

get_by_id和父键

我曾经使用get_by_id从数据存储中获取实体,从不使用祖先路径.但我的模型的复杂性使它成为必要.事实上,Ancestor Paths解决了一个大问题,但现在当我尝试get_by_id实体返回时,None如果实体具有父键.这意味着我需要添加父键:

entity = MyModel.get_by_id(id)
Run Code Online (Sandbox Code Playgroud)

这会变成:

entity = MyModel.get_by_id(id, parent=key)
Run Code Online (Sandbox Code Playgroud)

如何构建父键?

编辑:

此时我更喜欢留下祖先路径并添加另一个keyproperty.

google-app-engine app-engine-ndb google-cloud-datastore

4
推荐指数
1
解决办法
2538
查看次数

ProtoRPC API是ajax内置的GAE吗?

下一步:gae/py app的ajax前端.

我的应用程序只有基本的html版本,可以与数据存储区交互并每次更新页面.没关系,但现在需要ajax.我尝试了一些解决方案:基本的javascript,jquery的ajax API和一些框架.

我想我在knockoutjs中找到了我想要的东西,但是这个框架通过json格式与服务器交互.这意味着我需要学习json库并重写所有处理程序,以便在json中获取和发布.我可以开始这个任务,但在我想了解更多关于ProtoRPC API之前.

文档说这个API对于"创建结构化的Ajax后端"也很有用,如果我理解的话,响应中的消息是json格式的.我的问题是:

ProtoRPC API消息确实使用json?

所有请求/响应都通过ProtoRPC会出现问题吗?

实现服务器端固态ProtoRPC服务并使用框架进行客户端是一个很好的策略?

ajax google-app-engine json protorpc knockout.js

2
推荐指数
1
解决办法
363
查看次数