小编Rie*_*bel的帖子

View的骨干变换模型

我对Backbone相当新,并提出以下问题:

我有一系列模特.

我有一个显示选项卡的集合视图(包含集合中每个模型的视图).

我有一个模型的视图(内容).

我有一个路由器的路由器.

我想要实现的是像http://jqueryui.com/demos/tabs/这样的功能

我单击选项卡(集合模型),然后想要将模型传递给内容视图,可能会更改它并反映集合中的更改.

我想出了四个解决方案:

在路由器中:

'switchCommunity': function(id) {
        // (a) set new model attributes
        this.view.community.model.set(communities.get(id));

        // (b) replace model
        this.view.community.model = communities.get(id);

        // (c) a custom function of the view changes its model
        this.view.community.changeModel(communities.get(id));

        // (d) a new view
        this.view.community = new View({
            model: communities.get(id)
        })
}
Run Code Online (Sandbox Code Playgroud)

这里的问题是

  • (a)不反映集合中模型的变化

  • (b)不触发(改变)事件,因为视图的初始化函数中的绑定永远不会触发,因为它是一个完全新的模型

  • (c)对我来说似乎是个黑客

  • (d)每次我点击选项卡时都会创建一个新视图(这是性能问题吗?)

这里最好的实践是什么?

javascript model-view-controller model view backbone.js

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

Backbone REST API推荐/跨域

我正在开发一个Backbone应用程序,该应用程序在很大程度上依赖于使用ajax/fetch调用的REST API.

我的所有业务逻辑都是使用MySQL编写的PHP类.目前我正在使用FRAPI作为API,对我来说效果很好.

在我的开发环境中,我有两个虚拟主机:

  1. 静态HTML/JS客户端应用程序 - > localhost
  2. PHP中的FRAPI API - > api.local

问题是我的客户端请求是跨域的(IE和这样的浏览器不起作用).

我该怎么做才能保持我的客户端vhost静态(没有PHP代理)而不使用JSONP?什么RESTful API通常用于Backbone?

javascript api rest backbone.js

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

如何在CSS注释中使用LESS变量?

是否可以在CSS评论中为mixins使用LESS变量?我需要那些精神.

例如(不工作/仅替换图像路径):

.sprite (@width) {
    /** sprite: sprite-@{width}; sprite-image: url('../img/@{width}/sprite-@{width}.png'); sprite-layout: vertical */

    .picture {
        background-image: url('../img/@{width}/picture.png'); /** sprite-ref: sprite-@{width}; */
    }
}

.sprite(800);
Run Code Online (Sandbox Code Playgroud)

额外问题:在使用lessc编译后,我可以阻止background-image和sprite-comment之间的换行符吗?

html css less

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

Backbone集合使用RequireJS设置默认API URL

如何为Backbone中的集合和模型的所有请求设置默认URL /服务器?

示例集合:

define([
    'backbone',
    '../models/communityModel'
], function(Backbone, CommunityModel){
    return Backbone.Collection.extend({
        url: '/communities', // localhost/communities should be api.local/communities
        model: CommunityModel,
        initialize: function () {
            // something
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

我进行初始的AJAX调用以获取我的设置,包括API的URL(api.local).

如何重新路由请求而不将其传递给我的所有模型或硬编码模型和集合中的URL?

javascript api model-view-controller requirejs backbone.js

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