我有一个由rails后端驱动的Backbone应用程序.我有一个Invitation资源,我可以通过向邀请控制器的创建操作发送POST请求来发送邀请.
我的Backbone模型看起来像这样(coffeescript):
class Invitation extends Backbone.Model
urlRoot: '/invitations'
Run Code Online (Sandbox Code Playgroud)
然后是表单发送邀请的模板.我试图尽可能接近普通的rails形式,因为看起来Rails最好处理:
<form action="/invitations" accept-charset="UTF-8" id="new_invitation" class="new_invitation" method="post">
<input id="invitation_recipient_name" class="invitation_recipient_name" type="text" name="invitation[recipient_name]" />
<input id="invitation_recipient_email" class="invitation_recipient_email" type="text" name="invitation[recipient_email]" />
<input type="submit" class="btn primary" name="commit" id="invite" value="Send Invitation" />
</form>
Run Code Online (Sandbox Code Playgroud)
这是我的模型和模板的Backbone View
class InvitationView extends Backbone.View
# this is the template shown above
template: JST['backbone/templates/invitation']
events:
'click #invite': 'sendInvite'
render: ->
$(this.el).html this.template()
this
sendInvite: (e) ->
e.preventDefault()
name = this.$('#invitation_recipient_name')
email = this.$('#invitation_recipient_email')
this.model.save
recipient_name: name.val()
recipient_email: email.val()
Run Code Online (Sandbox Code Playgroud)
问题是当我单击提交按钮并sendInvite …
javascript ruby-on-rails javascript-framework backbone.js ruby-on-rails-3
由于我是backbonejs和underscorejs的新手,我想知道那些核心意义.
由于我的理解underscorejs就像jQuery库一样,我们在backbonejs中使用这些函数.
我们无法开发没有下划线的backbonejs应用程序.
我对吗?如果我的理解是错误的,请用简单的单词/例子清楚说明.
提前致谢.
我们有一个基于推送的Web应用程序.最近,我们计划为它制作一款iPhone应用程序.就像Facebook拥有它的iPhone应用程序以及网络存在一样.我们正在寻找可以让我们快速前进的UI框架.我已经通过叶的PhoneGap和其他几个JS基于UI框架这里提到.我有点不确定什么能最适合我们.所以,我正在寻找你的建议.
我们的限制如下:
该框架应该基于JS.我们都是网络开发者,并希望避免学习目标C.
框架应该像本机应用程序一样顺畅地支持iPhone的功能.如果没有,我们将更喜欢JS框架,这是所有JS框架中最流畅的.所以,这是最重要的约束.
它应该支持平滑滑动屏幕,支持旋转.很好,如果它也可以捕获震动.但是,如果没有动摇支持,震动不会优先于更好的框架.
很高兴 - 如果在其他触摸屏手机上也支持该框架,代码很少或没有修改.Android和Symbian就足够了.但同样,我们现在专注于iPhone.
我有点好奇知道什么是开始开发的最佳选择.如果您与您使用的框架的优缺点分享您的经验,我将非常感激.
谢谢
Nishant
我有两个对象:
object1={
type: 'obj1',
nName: 'nName'
}
object2={
type: 'obj2',
pName: 'pName'
}
Run Code Online (Sandbox Code Playgroud)
在我的js代码中,我有:
object=GET_OBJECT();
Run Code Online (Sandbox Code Playgroud)
该GET_OBJECT()方法返回object1或object2,然后,我想访问对象的name属性,该属性是nName或pName.
我有一个方法将获取返回对象的名称(pName或nName):
function getName(Object, name){
return object.name;
}
Run Code Online (Sandbox Code Playgroud)
我希望它name成为一个变量,以便我可以访问pName或nName以这种方式:
object=GET_OBJECT();
var name='';
if(object.type=='obj1')
name='nName';
else
name='pName';
var finalName=getName(object, name);
Run Code Online (Sandbox Code Playgroud)
但似乎它不起作用,因为:
function getName(Object, name){
return object.name;
}
Run Code Online (Sandbox Code Playgroud)
name是一个变量.在JS中,有没有办法将属性作为变量访问?
有类似的问题,但没有一个似乎达到了标记.我正在寻找有关使用JavaScript框架开发桌面应用程序的反馈.以下是一些细节,可以消除类似桌面的Web应用程序和真正的桌面应用程序之间的混淆:
一些竞争者包括Adobe AIR,Ext JS和Dojo/Dijit.Ext JS 4最近发布了MVC架构,看起来很有吸引力,可能会改变以前的框架比较.
我正在寻找那些有开发像这样的桌面应用程序的经验的人的反馈,以及他们在不同框架中遇到的优点和缺点.
这是关于我的JavaScript代码结构的一般性问题,如果我朝着结构良好的代码方向前进的话.
我目前的代码:
(function (myNamespace, $, undefined) {
myNamespace.className = {
init:function { } // do stuff
}
} (window.myNamespace= window.myNamespace|| {}, jQuery)));
(function (myNamespace, $, undefined) {
myNamespace.className2 = {
init:function { } // do stuff
}
} (window.myNamespace= window.myNamespace|| {}, jQuery)));
Run Code Online (Sandbox Code Playgroud)
显然,使用上面的代码,我可以使用相同的命名空间(按页/站点部分)并通过myNamespace.className.init()等方式调用它们.如果我愿意,我也可以将它们组合在一起,但是我为了可读性而封装了类.
现在,我一直在阅读关于调解员概念的http://addyosmani.com/largescalejavascript/.我的第二个问题是何时(以及如果)我应该使用这些?从className2显然我可以这样做:
myNamespace.className2 = {
init:function { myNamespace.className.init() } // do stuff
}
Run Code Online (Sandbox Code Playgroud)
那么为什么会这样订阅className mediator.subscribe("classNameInit")并在className中发布该事件呢?
我非常乐意接受有关代码结构的建议,因为在我改变编写JavaScript的方式时,这是我需要做的事情.
我试图理解使用关键字"this"的区别,或者更确切地说它在jQuery Vs和Backbone等MVC框架中所代表的含义.
以下是每个的2个代码示例; 所以在jQuery中,我们有
$("#result").click(function(){
$(this).html(someval);
})
Run Code Online (Sandbox Code Playgroud)
在Backbone中,我们有代码;
var HandlebarsView = Backbone.View.extend({
el: '#result'
initialize: function(){
this.template = Handlebars.compile($('#template').html());
},
render: function(){
var html = this.template(this.model.toJSON());
this.$el.html(html);
}
});
Run Code Online (Sandbox Code Playgroud)
现在我明白"this"是指jQuery中的DOM元素.
我想了解它在Backbone代码中的含义.
请告诉我.
我知道在java中的一种方法:
Calendar c5 = Calendar.getInstance();
c5.add(Calendar.MONTH, -6);
c5.getTime(); //It will give YYYYMMDD format three months ago.
Run Code Online (Sandbox Code Playgroud)
有没有办法在javascript中执行此操作.我知道我可以使用Date d = new Date(); 解析它并做一些代码来获取格式.但现在我不想做解析并获得三个月前的约会.
我试图找到一种方法来解析不同的数据索引作为奇数或偶数
我正在看这个http://assemble.io/helpers/helpers-comparison.html并希望找到这样的东西:
{{#each array}}
{{#if_odd {{@index}}}}
{{this}} is odd
{{else}}
{{this}} is even
{{/if_odd}}
{{/each}}
Run Code Online (Sandbox Code Playgroud)
我并不真正关心语法,但希望我的想法能够实现.有帮助吗?谢谢.
为了找到vue.js的vue-resource插件的任何预先使用的示例而苦苦挣扎,我尝试了这个:
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/0.12.7/vue.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue-resource/0.1.13/vue-resource.min.js"></script>
<div id="my_view">
<p>{{ origin }}</p>
</div>
<script>
var Vue = require('vue');
Vue.use(require('vue-resource'));
new Vue({
el: '#my_view',
data: {
origin: ''
},
ready: function() {
// GET request
this.$http.get('http://httpbin.org/ip', function (data, status, request) {
// set data on vm
this.$set('origin', data)
}).error(function (data, status, request) {
// handle error
})
}
})
</script>
Run Code Online (Sandbox Code Playgroud)
只是查询httpbin.org/ip(我能找到的随机REST端点)并在里面显示结果#myview > p.这只是我正在尝试运行的vue-resource github页面上提供的示例(一个改编版本).
任何人都可以看到我无法实现这一目标吗?
编辑:添加逗号,这里是它的小提琴.