小编Ada*_*mas的帖子

在主干中切换视图以在页面之间导航 - 什么是正确的方式?

我决定将应用程序路由更改为客户端而不是服务器端.这意味着当用户浏览网站时,我需要一种方法来切换页面内外的视图.我唯一可以找到尝试记录这一点的是本文:如何使用Backbone.js切换视图

我知道这是如何工作的,但我认为这不是一个好方法.我想保留我的观点 - 因为这是重点吗?为您的应用程序的可区分部分提供单独的视图?我认为拥有一个大的"ContentView",然后只是将其中的东西拉进去并重新渲染有点粗糙,并绕过所有酷的模块化,否则你可以做.

那么最好的方法是什么呢?理想情况下,我想要一个类似于上述文章中记录的功能,但是以骨干视图作为其参数.

backbone.js

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

骨干"重置"集合触发器不触发

我使用backbone.js从REST服务器获取集合.获取触发器很好并使用数据填充集合.但是,"reset"触发器永远不会被触发,因此永远不会调用addAll().手动调用addAll()可以正常工作 - 但是为什么在集合上调用fetch()时不应该"重置"触发?

这是代码:

模型

define(['backbone-tastypie'], function(Backbone) {
    var Machine = Backbone.Model.extend({
        url: function(){
            return this.get('resource_uri') || this.collection.url;
        }
    });

    return Machine;
});
Run Code Online (Sandbox Code Playgroud)

采集

define(['backbone-tastypie','models/machine'], function(Backbone, Machine) {
    var Machines = Backbone.Collection.extend({

        model: Machine,
        url: '/api/rest/machine/',
        parse: function(data){
            return data.objects;
        }
    });

    return Machines;
});
Run Code Online (Sandbox Code Playgroud)

模型视图

define(['underscore','backbone-tastypie'], function(_, Backbone) {
    var MachineTableEntryView = Backbone.View.extend({
        tagName: 'tr',
        template: _.template($('#machine-row-template').html()),

        render: function(){
            $(this.el).html(this.template(this.model.toJSON()));
            console.log('lol');
            return this;
        }   
    }); 

    return MachineTableEntryView;
});
Run Code Online (Sandbox Code Playgroud)

主视图

define(['underscore','backbone-tastypie','collections/machines','views/machine_table_entry'], function(_, Backbone, Machines, MachineTableEntryView) {
    var MachineTableView = Backbone.View.extend({ …
Run Code Online (Sandbox Code Playgroud)

backbone.js

7
推荐指数
1
解决办法
8766
查看次数

如何在django-tastypie中包含非直接(通过另一个资源)的反向关系?

我有3个型号.游戏,玩家和作品.玩家附加到游戏上并且玩家附加到玩家.关系是简单的外键.

在检索游戏时,我还希望从所有玩家中检索所有棋子并将其包含在结果中.

class GameResource(ModelResource):
    class Meta:
        queryset = Game.objects.all()
        resource_name = 'game'
        allowed_methods = ['get']

class PlayerResource(ModelResource):
    game = fields.ForeignKey(GameResource, 'game')
    class Meta:
        queryset = Player.objects.all()
        resource_name = 'player'
        allowed_methods = ['get']

class PieceResource(ModelResource):
    player = fields.ForeignKey(PlayerResource, 'player')
    class Meta:
        queryset = Piece.objects.all()
        resource_name = 'piece'
        allowed_methods = ['get']
Run Code Online (Sandbox Code Playgroud)

我不知道这是怎么做到的.我最初改变了脱水,以便它只是做正确的查询,调用django serialize,并将它放在bundle中的一个新变量中.这对我来说似乎是一个躲闪.查询集的序列化也被tastypie再次序列化,导致它转义引号字符(urgh).

api django tastypie

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

尽管已将 null 设置为选项,但无法将 React useFormState 类型属性设置为 null

我正在使用打字稿。我有一个类型,其属性“message”可以是字符串或 null

export type State = {
  message: string | null;
};
Run Code Online (Sandbox Code Playgroud)

尽管如此,当尝试将该属性设置为 null 时,我收到以下类型错误。它只允许我将其设置为字符串。

Types of property 'message' are incompatible.
Type 'null' is not assignable to type 'string'.
Run Code Online (Sandbox Code Playgroud)

我正在使用这样的类型:

const initialState = { message: null };
const [state, dispatch] = useFormState(postFiles, initialState);

export async function postFiles(prevState: State, formData: FormData) {
  console.log(formData);
  return {
    message: "Uploaded",
  };
}
Run Code Online (Sandbox Code Playgroud)

我尝试将 strictNullChecks 设置为 true,但仍然收到错误。会是什么呢?我缺少什么吗?

types typescript

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

标签 统计

backbone.js ×2

api ×1

django ×1

tastypie ×1

types ×1

typescript ×1