首页 新闻 会员 周边 捐助

angularjs 怎么动态给生成的html加指令?

0
悬赏园豆:5 [已解决问题] 解决于 2017-09-15 09:12

例如:我动态添加一串html<a href="javascript:void(0);" ng-click="info()">查看<a/>

怎么样后台才会绑定info这个方法?

小银光的主页 小银光 | 初学一级 | 园豆:25
提问于:2017-04-20 09:23
< >
分享
最佳答案
0

需要先compile 这段html,然后再添加到dom。

收获园豆:5
幻天芒 | 高人七级 |园豆:37207 | 2017-04-20 10:24

能给个例子吗?

小银光 | 园豆:25 (初学一级) | 2017-04-20 10:25

@小银光: http://dojo.hstar.org/c8f80a8983ad

幻天芒 | 园豆:37207 (高人七级) | 2017-04-20 10:35

@幻天芒: 给个简单点的,这个网站怎么看?

小银光 | 园豆:25 (初学一级) | 2017-04-20 10:36

@小银光: 登录之后就可以看代码了呢。

幻天芒 | 园豆:37207 (高人七级) | 2017-04-20 11:49

@幻天芒: 懒得登录...

爱编程的大叔 | 园豆:30844 (高人七级) | 2017-04-20 11:58

@爱编程的大叔: 心塞...

angular.module('app', [])
.controller('DefaultController', ['$scope', '$compile', function($scope, $compile){
  $scope.message = 'Hello Angular!';
  $scope.add = function(){
    let html = `<button ng-click="add2()">我是一个动态添加的按钮</button>`;
    let el = document.querySelector('#t1');
    el.innerHTML = html;
    // 核心代码,编译
    $compile(angular.element(el))($scope);
  };
  $scope.add2 = function(){
    alert('您点击了动态添加的button');
  };
}]);
幻天芒 | 园豆:37207 (高人七级) | 2017-04-20 16:47

@幻天芒:

1. Angular 4都出了,就不要继续耗时间在AngularJS上了,何况还未入门,说的是楼主。

2. Angular 2 和4可以顺利切换,差异较小,不放心4的话,也应该升级到Angular 2的。

3、这个方法就是在操作DOM,MVVM设计好的话,完全无需操作DOM的。

4、这个方法不得已而为之,反正我是不建议使用的。

爱编程的大叔 | 园豆:30844 (高人七级) | 2017-04-22 09:15

@爱编程的大叔: 

1、并不赞成这种观点,AngularJS只是平稳期,并不代表它不行了。而且,多余大多数项目来说,足够用且不会太难引入。如果是Angular(2.x版本+叫angular,1.x叫angularjs),需要一大套知识才能玩的起来。各自有亮点罢了。

2、4已经是正式版,加上2、4是兼容升级,所以基本上2已经算是死掉了。要么1.x,要么4.x

3、赞同

4、赞同

幻天芒 | 园豆:37207 (高人七级) | 2017-04-22 20:59

@幻天芒:

1. 我是赞同Angular js 1.x可以使用,并没有否定1.x。只是题主貌似也才刚刚入门的样子,不如直接换。如果已经熟悉的,用用当然没有问题。

2、我就是打算直接上4,结果出现的问题是,大部分的开源项目或者示例都是2.x或者1.x的,

然后4.X的Documentation藏得很好,得找半天。

4.x相对2.x来说,大结构没有变化,但是有些API确实变化了,这样会无端在某些API上面消耗很多时间,

我想我需要把项目定位回2.x了。

爱编程的大叔 | 园豆:30844 (高人七级) | 2017-04-24 09:23

@爱编程的大叔: 我们是直接1.x和4.x并行,并进行兼容运行。逐步切换到4,至于4.x的文档,一个是看官方文档(看完官方文档基本就了解得比较深入了),一个是看4.x的开源项目。

幻天芒 | 园豆:37207 (高人七级) | 2017-04-24 10:52
其他回答(1)
0

不建议操作DOM,你看任何一本Angular的书,第一句话应该都是告诉你这一点吧?

爱编程的大叔 | 园豆:30844 (高人七级) | 2017-04-20 09:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册