0

在控制器范围内查找所有隐藏输入的方法是什么?理想情况下,这可以在控制器初始化时完成吗?

在我的示例中,我有多个这样的评论:

 <div ng-controller="CommentCtrl">
         <form method="post">
              <label>Leave Comment</label>
              <textarea name="comment" ng-bind="comment"></textarea>

              <input type="hidden" name="comment_id" value="1" />
              <input type="hidden" name="site_id" value="2" />
         </form>
    </div>

所以我是 init,我只想遍历范围以找到该控制器的隐藏值,然后为其分配一个值。有没有办法在 AngularJS 中做到这一点?

4

2 回答 2

0

如果您确实需要访问控制器中的那些隐藏字段(这对于 Angular 来说不是一个好的做法,正如上面@Ye Liu 所说)尝试 angular.element("input[type=hidden]"); 它会给你一个包含所有隐藏输入的列表。您需要在 angularjs 脚本之前将 jquery 链接到您的 html 文件中。

于 2013-08-14T16:02:29.430 回答
0

您需要创建一个指令,以便以正确的方式访问 DOM。

选项1

创建一个放在顶部 DIV 上的指令。在该指令的链接函数中,您可以访问 DOM 元素并找到所有隐藏的输入。

link: function postLink(scope, iElement, iAttrs) {
   angular.forEach(iElement.find('input'),function(inputElement) {
      if(inputElement.attr('type') == 'hidden') {
        // do something
      }
   });
}

这是使用Angular 自带的jqLit​​e

选项 2

做一些类似于 Angular 对输入和模拟指令所做的事情:创建一个基于标准 HTML 的指令。因此,您可以创建一个名为“type”的指令,仅限于属性。

于 2013-08-14T16:03:30.233 回答