小编rkw*_*rkw的帖子

有没有办法将Model的.change()触发器绑定到View的.render()函数而不创建多个?

View通常需要具有这些属性的对象才能呈现:

{ el: '#someelement', model: someModel }
Run Code Online (Sandbox Code Playgroud)

View还允许我们将模型的事件绑定到视图中的函数:

initialize: function() {
    this.model.bind('change', this.renderFromModel, this);
},

render: function() {
    $(this.el).html(this.template(this.model.toJSON()));
    return this;
},

renderFromModel: function() {
    var t = _.template($('#some-template').html());
    $('item-' + this.cid).html(t(this.toJSON()));
    return this;
},
Run Code Online (Sandbox Code Playgroud)

问题是我们第一次实例化一个View for rendering时,它期待一个带有Model的对象; 第二次从模型中调用它时渲染视图,它不是.因此,我最终创建了两个render()函数.

有没有更好的方法来实现单项渲染,也可以响应model.change()事件?

backbone.js

29
推荐指数
4
解决办法
3万
查看次数

jQuery选择器是否返回HTML Element或jQuery对象的数组?

什么存储Q

Q = $('div');
Q2 = document.getElementsByTagName('div');
Run Code Online (Sandbox Code Playgroud)

我可以通过使用来访问每个HTML元素Q[index],类似于Q2[index]; 这看起来像是Q一个HTML元素数组.

在另一方面,我可以做Q.filter(),但我不能Q2.filter(); 这使它看起来像是Q一个jQuery对象的数组.

或者它是两者,Q一个jQuery对象,其中包含一堆HTML元素?如果是这种情况,不会console.log()检测到Q内部有对象集合的对象吗?这个小提琴,http://jsfiddle.net/rkw79/3s7tw/,表明它们是一样的.

注意:我知道Q.eq(index)将返回一个可以使用jQuery方法的对象.我只是想知道到底是什么Q

jquery

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

无法在jquery ajax帖子上使用mvc 3进行不显眼的验证

我在使用MVC3进行验证方面遇到了很多麻烦.我直接加载页面时工作正常,但是当我使用jquery AJAX POST时它不会验证:

使用这个表单加载$('#modal-dialog').load('/DartsMVC/Restaurant/Edit/13'),这是呈现的HTML:

<form action="/DartsMVC/Restaurant/Edit/13" method="post">
    <fieldset>
        <legend>Restaurant</legend>

        <input data-val="true" data-val-number="The field RestaurantID must be a number." data-val-required="The RestaurantID field is required." id="RestaurantID" name="RestaurantID" type="hidden" value="13">

        <div class="editor-label">
            <label for="Name">Name</label>
        </div>
        <div class="editor-field">
            <input class="text-box single-line" data-val="true" data-val-required="The Name field is required." id="Name" name="Name" type="text" value="furaibo">
            <span class="field-validation-valid" data-valmsg-for="Name" data-valmsg-replace="true"></span>
        </div>

        <p>
            <input type="submit" value="Save" class="ui-button ui-widget ui-state-default ui-corner-all" role="button" aria-disabled="false">
        </p>
    </fieldset>
</form>
Run Code Online (Sandbox Code Playgroud)

拦截表单/提交使用AJAX POST.帖子完成后,模式对话框会自动弹出并关闭.我想在发送帖子之前验证表单:

// force change the submit data to an ajax POST (usually …
Run Code Online (Sandbox Code Playgroud)

ajax jquery post unobtrusive-validation asp.net-mvc-3

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

语法问题:@ Html.LabelFor(m => m.UserName)

从ASP.NET 2.0(VB)到MVC 3(C#),我对用于View的语法感到非常困惑.

@Html.LabelFor(m => m.UserName)
Run Code Online (Sandbox Code Playgroud)

那个m来自哪里?我唯一的猜测是它代表了传递给视图的模型.我尝试将m更改为c,它仍然可以正常工作.

语法的一部分是否涉及"=>"更多的MVC,C#或Razor元素?

c# asp.net-mvc razor

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

这些Backbone/Underscore .bind()方法有什么区别?

window.SomeView = Backbone.View.extrend({
    initialize1: function() {
        _.bindAll(this, 'render');
        this.model.bind('change', this.render);
    },

    initialize2: function() {
        this.model.bind('change', _.bind(this.render, this));
    },

    initialize3: function() {
        _.bind(this.render, this);
        this.model.bind('change', this.render);
    },
});
Run Code Online (Sandbox Code Playgroud)

在一些SO成员的帮助下,我能够让我的测试项目使用绑定方法in​​itialize1和initialize2; 我不明白的是为什么initialize3不起作用?

文档: _. bind(function,object,[*arguments])

javascript backbone.js underscore.js

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

控制器名称是否来自类名?

这是一个新手问题......

我正在查看默认的asp.net mvc3项目,并注意到有一个名为的控制器:

public class AccountController : Controller
Run Code Online (Sandbox Code Playgroud)

我查看了整个代码,找不到指定AccountController映射到/ Account /的URL的地方.

我发现,您可以使用路由的改变routes.MapRoute(..)Global.asax,但我还是不知道他们指定的AccountController映射到/帐号/.

如果从类名中假设它,那么这是否意味着所有控制器类都必须命名为xxxxxController?

asp.net-mvc controller routes naming-conventions classname

5
推荐指数
2
解决办法
2112
查看次数

你.filter()之后怎么从.pluck()中获取值?

window.CardList = Backbone.Collection.extend(...);

var Cards = new CardList;

Cards.filter(...).pluck('values')
Run Code Online (Sandbox Code Playgroud)

是否有一种干净的方法来过滤集合然后采集值?我知道的唯一工作是重新初始化集合:

new CardList(Cards.filter(...)).pluck('values')
Run Code Online (Sandbox Code Playgroud)

或者在输出过滤后映射输出:

Cards.filter(...).map(...)
Run Code Online (Sandbox Code Playgroud)

这看起来很奇怪,因为它有一个非常好的.pluck()方法

backbone.js

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

在jQuery中是否存在.removeProp()的错误,或者我做错了什么?

列表框中的选定项目将显示在下面的UL中.单击UL中的项目,它将从列表框中删除它并从UL中删除.

重现错误:http://jsfiddle.net/rkw79/mmBKf/2/

  • 在列表框中选择一个项目
  • 点击UL中的该项,它将消失,列表框将显示为未选中
  • 单击列表框中的相同项目

请注意,事件已触发,但未添加该项

现在执行相同的步骤,除了使用.prop('selected','')而不是.removeProp('selected'):http://jsfiddle.net/rkw79/mmBKf/3/

jquery

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

查看渲染:是否有更好的方法来控制视图元素的类名?

var myView = Backbone.View.extend({
    tagName: 'div',
    className: function() {
        return this.model.isNew() ? 'new' : 'old';
    }
Run Code Online (Sandbox Code Playgroud)

这是我想要的功能,但它不起作用.我不确定何时确定类名,但被调用者只是元素本身; 在这种情况下,它会<div></div>.有没有办法让className访问模型?

我可以,并且目前,在我的模板中放置另一个div,以便控制类,但如果我能够从View本身控制类名,则绝对不需要div.

backbone.js

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