相关疑难解决方法(0)

数据绑定如何在AngularJS中运行?

数据绑定如何在AngularJS框架中工作?

我没有在他们的网站上找到技术细节.当数据从视图传播到模型时,它或多或少清楚它是如何工作的.但是AngularJS如何在没有setter和getter的情况下跟踪模型属性的变化?

我发现有一些JavaScript观察者可以做这项工作.但Internet Explorer 6Internet Explorer 7不支持它们.那么AngularJS如何知道我改变了例如以下内容并在视图上反映了这一变化?

myobject.myproperty="new value";
Run Code Online (Sandbox Code Playgroud)

javascript data-binding angularjs

1924
推荐指数
12
解决办法
34万
查看次数

单页应用SEO和无限滚动AngularJS

我们有一个类似于pinterest的网站,并计划将jquery汤重构为更有条理的东西.两个最有可能的候选人是AngularJS和Backbone + Marionette.该网站是用户生成的,主要是面向消费的(典型的90/9/1规则),用户可以对帖子进行喜欢,收藏和评论.从Feed中我们打开一个灯箱,查看有关帖子的更多详细信息,包括评论,相关帖子,类似于pinterest.

我们偶尔使用骨干并熟悉这个想法,但是在样板上推迟了.我认为木偶会对此有很大的帮助,但我们愿意更加彻底地改变方向(例如Angular),如果它能长期发挥作用的话.

要求:

  • 出于SEO原因,初始页面必须是静态的 重要的是,框架能够从现有内容开始,最好不要打架.
  • 我们希望在Feed中加载灯箱所需的数据,以便更快地进行转换.一些数据已经存在(标题,说明,照片,数字/数字书签,数字注释),但还有其他数据可以加载到详细视图中 - 评论,类似帖子,喜欢这个的人等等.
  • 在Feed或详细信息灯箱中发生的帖子的更改应该反映在另一个中,只需要很少的工作(例如,如果我喜欢它,我应该看到,如果我去灯箱,就像计数一样新 - 或者相反的.)
  • 我们希望迁移我们的移动网站(目前在Sencha Touch中)也使用相同的代码库来处理常见的部分,这样我们就可以在移动和主站点之间实现更接近的功能.

这些要求与我对Angular的担忧有关:

1)通过模板附加页面进行渲染时,初始页面加载是静态的是否可能/有问题.

2)为页面的不同部分提供多个数据源是有问题的 - 例如,主要帖子部分来自嵌入式json数据和来自"查看更多"的feed,而附加细节来自不同的ajax调用.

3)虽然双向绑定很酷 - 我担心在我们的情况下它可能是负面的,因为渲染的项目数量.我们需要双向绑定的元素数量相对较少.帖子如:

关注我的用例.我们可以轻松拥有数百个帖子,每个帖子有1-2个细节.双向绑定是否可以"禁用",我知道哪些字段/元素不会改变?

将视口外部的元素卸载到同一个内存是否正常/可能?这也与移动方向有关,因为内存更受关注.

AngularJS会在我们的用例中运行良好吗?有什么技巧/提示可以帮助吗?

javascript performance mobile angularjs

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

在自定义指令中绑定ng指令

我有以下代码与自定义指令'my-repeater':

<div ng-controller="AngularCtrl">
  <div my-repeater='{{items}}'>Click here</div>
</div>?
Run Code Online (Sandbox Code Playgroud)

这是我的自定义指令:

myApp.directive('myRepeater', function($compile) {
  return {
    restrict: 'A',
    link: function(scope, element, attrs) {
        var myTemplate = "<div ng-click='updateRating({{item}});' ng-class='getRatingClass({{rating}});'>{{rating}}</div>";
            var items = scope.items;
            console.log('length: ' + items.length);
            for (var i = 0; i < items.length; i++) {
                var child = scope.$new(true);
                console.log(items[i].ratings);
                child.item = items[i];
                child.rating = items[i].ratings;                    
                var text = $compile(myTemplate)(child);
                element.append(text);
            }
   }
};
Run Code Online (Sandbox Code Playgroud)

});

在我的自定义指令中没有正确地发生ng-clickng-class绑定.任何人都可以帮我解决我在这里做错了什么吗?

这是JS小提琴. http://jsfiddle.net/JSWorld/4Yrth/5/

javascript-framework angularjs

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