注意事项

ng-repeat 和 sql data 

我们经常需要从sql拿一些table资料展现出来,一般是放在一个 js 的 arrayobject里 [{xx:1},{xx:2}];

angularjs 的ng-repeat 让我们轻松实现了模板同步 

但有一点要切记,scope属于模板,arrayObject属于sql  

所以我们绝对不可以因为模板需求而添加任何属性在 arrayObject上,我们只能添加在scope上 

        <div ng-repeat="obj in array" ng-init="age=0"> <!--如果这里换成 ng-init="obj.age=0" 就不应该了-->
            name : {{obj.name}} 
            age : {{age}}  <!--age 被加入到了这个row的scope-->        
            <div ng-click="addAge()">addAge</div>
        </div>     
                    $scope.addAge = function () {
                        this.age++; //这里的this指向当前的scope
                    }

我们可以通过事件调用到当前的scope读写age属性。

这里还要了解到,repeat指令会帮我们创建scope,续传parent scope .

如果我们在parent scope 的某个事件想修改某个row的一些view,我们应该使用 broadcast事件的方式。

因为repeat 是通过 array 做出来的,外部除了array和obj 没有任何接口可以让你和view做接触 . 

所以只能使用 broadcast. 这也是我们为什么强调千万不要因为想改动view而宽展了obj 的属性。arrayobj是sql的,其它模板可能也要用的,不能因为这个模板而弄脏!

 

2个module 遇到同样的名字的service.

module1 有一个service 叫 abc

module2 也有一个service 叫 abc  (撞名字)

当 module3 依赖注入 module1,module2 

那么当module3调用 service abc 时,获取的是依赖注入排列最后一个的service,这里也就是module2的service abc!

 

依赖注入的限制

        var extendAngular = angular.module("extendAngular", [], angular.noop);
        extendAngular.provider("$ajax", function () { //这里不能依赖注入$http哦
            this.$get = ["$http", function ($http) { //这里就可以!
                return {
                    name : "keatkeat"
                }
            }];
        });

provider 中注入不了$http , 但是 $get factory的时候可以, 要注意初始化module的时候.config .provider 的时候有些东西是不能注入进去的! 

 

指令

Multiple directives requesting isolated scope.  多个指令在一个element内, 只能有一个 isolated scope , 一个 template , 一个 controller name .

ng-transclude 的scope会续传parent ,和你的指令是sibling的关系! 这是为了如果你的指令是隔离的,内部的transclude 还能和上一层的scope保存通讯!

 

posted @   兴杰  阅读(273)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 百万级群聊的设计实践
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
点击右上角即可分享
微信分享提示