ng-click 是否突兀

Is ng-click obtrusive

提问人:Sachin Kainth 提问时间:7/3/2014 更新时间:7/4/2014 访问量:129

问:

我在HTML文件中有一行代码,如下所示

<button class="btn btn-primary" data-ng-click="ok()">Create PDF</button>

我的问题是这个。这难道不是回到使用突兀的 Javascript 的例子吗?

有没有更好的方法可以做到这一点?

javascript html angularjs 不显眼的javascript

评论

0赞 Rodrigo Fonseca 7/3/2014
我不这么认为,这是 Angular 处理 HTML 的方式。
1赞 rob 7/3/2014
如果您希望您的应用程序在不启用 JavaScript 的情况下运行,那么您可能不应该使用 AngularJS
0赞 Jscti 7/3/2014
@rob +1,我什至不明白你是怎么想到这个问题的,因为angularJS意味着完整的JS应用程序。也许你需要定义“突兀”对你来说的真正含义
0赞 Sachin Kainth 7/4/2014
@Bixi Stackover 适合那些不了解某些东西的人,让他们从像您这样非常聪明的人那里找出这些东西。如果我对什么是突兀的理解以及像 angularJS 这样的框架的基本原理是一周,那么我很高兴从其他人那里得到澄清。
0赞 Jscti 7/4/2014
不知道你为什么会被激怒,我的问题不是巨魔......使用完整的 JS 框架时,对您来说“不引人注目”意味着什么?

答:

2赞 ipaul 7/3/2014 #1

恕我直言,我会说这很突兀。但我认为没有人声称 AngularJS 是不显眼的 javaScript。恰恰相反。它是关于创建可以做惊人事情的应用程序 - 但使用 JavaScript,在 HTML 中散布各种绑定引用和对函数的引用。

0赞 ddavison 7/3/2014 #2

由于您使用的是 Angular,并且该指令是保留的,我不确定您有其他方法。

不过(未经测试),有一种可能性是这样的事情可以避免这种情况:

<button id="my-btn" class="btn btn-primary">Create PDF</button>
...
<script type="text/javascript" src="script.js"></script>

script.js(伪代码)

(function() {
  var btn = document.getElementById('my-btn');
  btn['data-ng-click'] = ok;
})();

评论

0赞 Pete 7/3/2014
我不知道为什么,但这让我感到畏缩。我想它勾起了制作 ie6 兼容网站的回忆。
1赞 link 7/4/2014 #3

是的,它是。但我不认为这是一件坏事。

我认为 Angular 很棒,因为您可以查看标记并弄清楚发生了什么,而如果使用 JQuery,除非您查看 JavaScript,否则您不知道会发生什么。

你可以使用 ng-if、ng-repeat、ng-show、ng-class 等......这是一个很好的框架。

您可以将 id 完全删除元素中,并将大量 html 抽象为指令,这些指令可以在您的应用程序中重用。

根据我的经验,由于指令 [ng-repeat + 自定义指令]

希望这会有所帮助。