javascript - ng-click 不从 DOM 获取参数

标签 javascript html angularjs angularjs-scope angularjs-ng-click

我有以下代码:

<input id="id">
<button data-action="bea" ng-click="Create($('#id1')[0].value);" class="btn">Insert ID</button>
<button data-action="bea" ng-click="Create($('#id2')[0].value);" class="btn">Insert ID</button>

在我的 JS 中:

$scope.Create = function (id){
        if (id === undefined) {
            $scope.data = "You must specify an id";
        } else {
                $scope.data = data;
                console.log(data);
            });
        }
    };

当调用进入 Create 函数时,id 的值是未定义的。

如果我在 Create 函数的开头添加以下行,一切正常:

id = $('#id')[0].value;

如果我发送一个常量值,它会起作用:

<button data-action="bea" ng-click="Create('SomeID');" class="btn">Insert ID</button>

为什么会发生这种情况,如果不将值(value)线放入方法中,我该如何做到这一点?

谢谢

最佳答案

这只是评论和其他答案的扩展,您可以使用 Angular 以多种方式实现这一点,一个简单的例子可能是:-

  <!-- Add a controller -->
  <div ng-controller="MainCtrl"> 
     <!-- Give a model binding to your text input -->
     <input ng-model="userEntry" type="text"/> 
     <!-- ng-click pass which ever argument you need to pass, provided it is an expression that can be evaluated against the scope or any constants -->
     <button data-action="bea" ng-click="Create(userEntry);" class="btn">Insert ID</button>
    <!-- Some simple data binding using interpolation -->
    {{data}}
     <!-- Just for demo on repeater on a list of items on the scope -->
     <div ng-repeat="item in items track by $index">{{item}}</div>
  </div>

Example Demo

我的 2 美分在最初尝试做的事情上:-

使用 Angular 绑定(bind)而不是直接访问 DOM 来获取数据,它确实可以帮助您只处理数据,而不必担心如何在 DOM 中访问或呈现数据。如果您认为需要访问 DOM 以实现业务逻辑,请重新考虑设计,如果您确实需要这样做,请在指令中进行。 Angular 在设计以及何时进行 DOM 访问方面非常固执己见。

关于javascript - ng-click 不从 DOM 获取参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26394718/

相关文章:

javascript - jquery 对多个列表进行排序

javascript - Emberjs linkTo 助手不加载模型

javascript - 即使 Angular JS 中的必填字段留空,表单也会被提交

angularjs - 如何在 Angular Controller 中循环遍历数组并一次显示一项

javascript - 如何循环遍历 100 个具有不同属性的对象的数组并从每个对象中检索 1 个属性值?

javascript - 如何对多个 html 表单使用 javascript 函数

javascript - 如何将起点和终点坐标传递给 Google Maps directions API?

javascript - 如何在不影响其行的情况下更改特定单元格的高度?

jquery - Asp.net 中的 Bootstrap 堆叠式导航栏下拉菜单

javascript - Bootstrap 模态自动在第二个打开模态时添加右边距