标签: javascript-framework

哪个JavaScript库具有最全面的类继承支持?

在玩了十几种不同的JavaScript库(例如Prototype,jQuery,YUI)之后,我发现每个不同的库都有不同的方式来模拟某种类层次结构并提供某种类继承支持.(除了jQuery)除了非常恼火,当你创建一个新类时,它必须依赖于库,除非你采用普通的方法.

我想知道哪个库提供了对类继承的最佳支持以及原因.

我希望有一天,JavaScript库作者可以就类创建和继承的一种风格达成一致.

javascript javascript-framework

20
推荐指数
5
解决办法
9648
查看次数

Zepto.js上的jQueryMobile?

我想知道是否有人已经尝试在Zepto.js(http://zeptojs.com/)上移植jQueryMobile 而不是所需的jQuery?

javascript-framework jquery-mobile zepto

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

在定义模型时使用DS.model或Ember.model或Ember.Object?

这个截屏视频:http://www.embercasts.com/episodes/getting-started-with-ember-model用于Ember.model创建这样的人物模型:

App.Person = Ember.Model.extend({
    name : Ember.attr()
})
Run Code Online (Sandbox Code Playgroud)


文档给出了用这个例子Ember.Object

App.Person = Ember.Object.extend({
    say : function(thing) {
        alert(thing);
    }
});
Run Code Online (Sandbox Code Playgroud)

此外,在定义模型部分下,给出了该示例使用的示例DS.model

App.Person = DS.Model.extend({
  firstName: DS.attr('string'),
  lastName: DS.attr('string'),
  birthday: DS.attr('date'),

  fullName: function() {
    return this.get('firstName') + ' ' + this.get('lastName');
  }.property('firstName', 'lastName')
});
Run Code Online (Sandbox Code Playgroud)

这三者之间有什么区别以及何时使用哪种?

javascript-framework ember.js ember-data ember-model

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

Angular JS观察指令属性

棱镜js如何在自定义指令上观察属性以接受要绑定的角度值

这是我到目前为止:

<tile title="Sleep Duration" data-value="{{sleepHistory.averageSleepTime}}"/>

app.directive('tile', [function() {
    return {
        restrict: 'E',
        link: function(scope, element, attrs) {
            var title = attrs.title;

            attrs.$observe('dataValue', function(val) {
                var data = val;

                console.log(data);

                var dom =
                    "<div>" +
                    "<p>" + title + "</p>" +
                    "<p>" + data + "</p>" +
                    "</div";

                $(element).append($(dom.trim()));
            });
        }
    };
}]);
Run Code Online (Sandbox Code Playgroud)

但观察到的值是未定义的

javascript javascript-framework angularjs angularjs-directive

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

为什么Bootstrap需要jQuery?

我已多次搜索这个问题,但从未找到满意的答案.大多数答案似乎只是说" 是的,Bootstrap插件确实需要jQuery "或" 是的,如果不使用插件,你可以在没有jQuery的情况下使用BS ".Bootstrap对jQuery的依赖(如他们的快速入门所述)让我觉得这是一个糟糕的设计决策,至少有以下原因:

  1. jQuery是一个庞大而庞大的框架,现在任何使用BS插件的网站都必须下载它.当然,BS用户可以使用超薄/缩小的构建(除非他们想使用jQuery AJAX),但即使是那些为除了Bootstrap之外的任何东西都不能使用的库添加非显着的加载时间.
  2. jQuery总体上似乎最近失宠,因为像Angular和React这样的框架越来越受欢迎(参见StackOverflow趋势).我知道老了!=糟糕,jQuery在网络上几乎无处不在,但为什么BS开发人员选择依赖一个已经过去十年的旧框架?
  3. 简单地要求<script>在BS之前编写jQuery 不允许使用现代捆绑器(如Webpack和SystemJS)进行非常清晰的依赖性解析.同样,他们为什么不使用某种基于模块的依赖?
  4. 但最重要的是,在我看来:为什么BS开发人员选择完全依赖于JS框架?在这个符合标准的浏览器的美好时代,jQuery的大部分功能现在都可以使用vanilla HTML/CSS/JS来完成.我们都知道,在创建任何类型的软件包/库时,我们应该尽可能地尝试删除其他依赖项,因为用户需要该软件包而不是其他一些额外的漏洞.

那么,有没有什么理由说BS开发人员选择依赖jQuery,尽管如此?我可能只是在他们的GitHub页面上直接向BS开发人员询问了一个问题,但我希望未来的googlers可以通过这些问题更容易理解这个问题.

更新:根据Bootstrap文档,jQuery依赖项将在"适度范围的v5版本"中删除,所以希望它将在2019年初到达.

javascript jquery javascript-framework twitter-bootstrap

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

Backbone中的计算属性

我有一个场景,在客户端上操作的数据以不同于服务器上表示的方式呈现和交互.

请考虑event从服务器返回的以下资源.

{
  "id": 123,
  "start_at": 1331336004906,
  "end_at": 1331337704906
}
Run Code Online (Sandbox Code Playgroud)

以下模板用于编辑:

<form>
  <!-- Notice how date and time are separated in the interface -->
  <input type="text" name="start_date" value="{{start_date}}" />
  <input type="text" name="start_time" value="{{start_time}}" />

  <!-- Instead of asking for an end date/time, we ask for the duration -->
  <input type="text" name="duration" value="{{duration}}" />

  <input type="submit" />
</form>
Run Code Online (Sandbox Code Playgroud)

我怎么会去治疗start_date,start_time以及duration在我的骨干模型属性,而不将它们发送到服务器?我应该修改.toJSON()吗?

javascript javascript-framework backbone.js

17
推荐指数
4
解决办法
9432
查看次数

AngularJS仅过滤某些对象

我有如下定义的用户对象.

$scope.user = [{id: 1, friends:
    [
        {name: 'John', age: 21, sex: 'M'},
        {name: 'Brad', age: 32, sex: 'M'}
    ]
}]
Run Code Online (Sandbox Code Playgroud)

我有以下代码:

<input type="text" ng-model="searchText">
<div ng-repeat="friend in user.friends | filter:searchText">
  {{friend.name}} {{friend.age}}
</div>
Run Code Online (Sandbox Code Playgroud)

每当我搜索时,我都会得到姓名,年龄和性别的结果.但我想只搜索姓名和年龄,我不希望性别可以搜索.任何人都可以帮我解决这个问题吗?

javascript-framework angularjs

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

Angular JS视图未正确更新

我有以下行动

在我的视图中点击- >其中inturn调用显示jQuery Qtip 的jQuery ajax函数- >在Qtip弹出窗口中,我有一个元素的ng-click - >执行$ http帖子并有一些回调来更新$ scope价值观.

所有这些事情都发生得恰到好处.但是根据最后阶段回调中的更改,更新不会反映在视图中.

我的视图中有"ng-mousemove"功能.因此,每当我移动鼠标时,视图中的更新都会被反映出来.

我在这做错了什么?是因为角度和非角度之间的过渡?任何人都可以帮我解决这个问题吗?

javascript-framework angularjs

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

带有Rails的Javascript框架

希望有人可以帮我清理一下.

我一直在阅读有关新的javascript应用程序框架,backbone.js,batman.js,ember.js等...

我看到很多实例使用Rails之上的框架.

有人可以向我解释.这不是需要大量重复才能使用它们吗?即.我需要完全复制每个模型和控制器吗?如果是这样,我每次都需要对它们进行更改吗?

我认为在浏览器上渲染模板有很大的好处,但是我觉得在一个已经很好组织的MVC结构上使用它们时,我遗漏了一些重要的东西.

有什么好处,看起来真的有多少重复?

我在这里读过这个问题

但它似乎没有解决重复问题.

提前致谢.

javascript-framework backbone.js ruby-on-rails-3 ruby-on-rails-3.1 ember.js

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

Backbone:多个视图订阅单个集合的事件?这是一种不好的做法吗?

我有一个问题,我认为是非常基本的东西但是:

我只看到了具有集合视图的示例,并且单个视图依赖于正在更新的集合.如果您有多个视图尝试订阅集合事件,例如reset,addOne,addAll等,该怎么办?

我是否错过了关于做/不这样做的一些观点?你有这方面的例子吗?这甚至有意义吗?

任何信息都非常感谢

    var Coll = Backbone.Collection.extend({
        model: SingleModel,
        url: 'service',
        initialize: function(){
            console.log('collection inited')

        }        

    });

    var SingleModel = Backbone.Collection.extend({});            

    var CollView = Backbone.View.extend({                
        el: 'ul',
        template: Handlebars.compile(someContainerTemplate),
        init: function(){
            _.bindAll(this, 'render', 'addAll', 'addOne');
            this.collection.bind("reset", this.addAll);

            this.collection.fetch();
        },
        render: function(){
            $(this.el).append(this.template())
        },

        addAll: function(){
            this.collection.each(this.addOne);
        },

        addOne: function(model){
            var view = new SingleView({ model: model })            
        }
    })

    var SingleView = Backbone.View.extend({
        tagName: "li",
        events: {
            "click .delete": "remove"                    
        },
        template: Handlebars.compile(someTemplateForSingleItem),  
        initialize: function() {
        _.bindAll(this,'render');

            this.model.bind('save', this.addOne); …
Run Code Online (Sandbox Code Playgroud)

javascript design-patterns javascript-framework backbone.js

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