标签: javascript-framework

没有收集的骨干模型.将重复数据发送到服务器?

我有一个由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

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

backbone.js真的需要underscore.js吗?

由于我是backbonejs和underscorejs的新手,我想知道那些核心意义.

由于我的理解underscorejs就像jQuery库一样,我们在backbonejs中使用这些函数.

我们无法开发没有下划线的backbonejs应用程序.

我对吗?如果我的理解是错误的,请用简单的单词/例子清楚说明.

提前致谢.

jquery javascript-framework backbone.js underscore.js

7
推荐指数
2
解决办法
4448
查看次数

基于JavaScript的iPhone UI框架

我们有一个基于推送的Web应用程序.最近,我们计划为它制作一款iPhone应用程序.就像Facebook拥有它的iPhone应用程序以及网络存在一样.我们正在寻找可以让我们快速前进的UI框架.我已经通过叶的PhoneGap和其他几个JS基于UI框架这里提到.我有点不确定什么能最适合我们.所以,我正在寻找你的建议.

我们的限制如下:

  • 该框架应该基于JS.我们都是网络开发者,并希望避免学习目标C.

  • 框架应该像本机应用程序一样顺畅地支持iPhone的功能.如果没有,我们将更喜欢JS框架,这是所有JS框架中最流畅的.所以,这是最重要的约束.

  • 它应该支持平滑滑动屏幕,支持旋转.很好,如果它也可以捕获震动.但是,如果没有动摇支持,震动不会优先于更好的框架.

  • 很高兴 - 如果在其他触摸屏手机上也支持该框架,代码很少或没有修改.Android和Symbian就足够了.但同样,我们现在专注于iPhone.

我有点好奇知道什么是开始开发的最佳选择.如果您与您使用的框架的优缺点分享您的经验,我将非常感激.

谢谢
Nishant

iphone javascript-framework

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

如何访问对象的属性作为变量?

我有两个对象:

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 javascript-framework

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

桌面应用程序的最佳JavaScript框架

有类似的问题,但没有一个似乎达到了标记.我正在寻找有关使用JavaScript框架开发桌面应用程序的反馈.以下是一些细节,可以消除类似桌面的Web应用程序和真正的桌面应用程序之间的混淆:

  1. 它需要完全独立运行.关于用于Web开发的JavaScript框架有很多讨论,但这严格来说是一个桌面应用程序(可能使用WebKit),它缩小了竞争者的领域.
  2. 至少需要在Windows,Linux和Mac上运行.
  3. 为了提高性能,它需要与线程化的本机代码进行通信 - 可能是C++.QtWebKit Bridge是可能的.这可能不会影响所使用的框架.
  4. UI需要具有丰富的布局和控件,就像在本机桌面应用程序中一样,以及图表和自定义图形.

一些竞争者包括Adobe AIR,Ext JS和Dojo/Dijit.Ext JS 4最近发布了MVC架构,看起来很有吸引力,可能会改变以前的框架比较.

我正在寻找那些有开发像这样的桌面应用程序的经验的人的反馈,以及他们在不同框架中遇到的优点和缺点.

javascript desktop-application javascript-framework

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

JavaScript架构 - 调解员,何时使用它们?

这是关于我的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的方式时,这是我需要做的事情.

javascript jquery javascript-framework mediator

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

jQuery Vs MVC中关键字"this"的含义

我试图理解使用关键字"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代码中的含义.

请告诉我.

javascript jquery javascript-framework backbone.js

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

如何在javascript中获得三个月前的日期,格式为YYYYDDMM

我知道在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(); 解析它并做一些代码来获取格式.但现在我不想做解析并获得三个月前的约会.

javascript javascript-framework

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

Handlebars的奇数和偶数比较助手

我试图找到一种方法来解析不同的数据索引作为奇数或偶数

我正在看这个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)

我并不真正关心语法,但希望我的想法能够实现.有帮助吗?谢谢.

html javascript jquery javascript-framework handlebars.js

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

vue-resource入门

为了找到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页面上提供的示例(一个改编版本).

任何人都可以看到我无法实现这一目标吗?

编辑:添加逗号,这里是它的小提琴.

javascript javascript-framework vue.js

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