HTML按钮和控制器无法连接

时间:2016-09-12 16:10:50

标签: javascript angularjs

尝试使用ng-click删除列表,但html和控制器似乎没有通信。

L = [e for i,e in enumerate(L) if i % 2]

单击图标时至少应该有警报,但没有任何反应。建议?

6 个答案:

答案 0 :(得分:1)

像Esteban所说,你的elem函数应该是范围变量的一部分,比如

$scope.vm.elem = function(){};

答案 1 :(得分:0)

看起来你的函数不在$ scope变量中。使用

$scope.vm.elim = function(list){
    ...
}

应该足够了。

答案 2 :(得分:0)

你的控制器是否有以下代码行?

var vm = this;
vm.elm = function (list) {
  alert("works");
  if ($window.confirm('Are you sure you want to delete?')) {
   vm.list.$remove($state.go('lists.list'));
  }
 };

如果可能,请告诉我们您的控制器代码。

答案 3 :(得分:0)

这是一个使用ng-click的工作示例:

    <html >
    <div ng-app="app" ng-controller="ctrl"> 

        <div ng-repeat="obj in objs">
            {{obj.name}}
            <button ng-click="click(obj.id)">Delete</button>
        </div>
    </div>


    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular.min.js"></script>

    <script>

     var app = angular.module('app', []);

     app.controller('ctrl', function($scope){

        $scope.objs = [{id: 1, name:"Darin"},{id: 2, name:"Jake"},{id: 3, name:"Todd"}]

        $scope.click = function(id){            
            alert(id);
        }        
     });
    </script>
    </html>

答案 4 :(得分:0)

如果在指令或html中使用控制器作为语法。

e.g。 <div ng-controller="YourController as ctrl"> <!--some html code--> </div>

或者

angular.directive('test',function test() {
   return {
      restrict: 'E',
      template: '<button ng-click="click">{{text}}</button>',
      controller: YourController,
      controllerAs: 'ctrl'
   }
});

然后在html视图中,您可以访问控制器属性

<div ng-controller="YourController as ctrl">
    <p>{{ctrl.someProperty}}</p>
 </div>`

如果你没有使用控制器作为语法,那么只需从&#34; vm.elim(list)&#34;中删除vm。和&#34; vm.lists&#34;

以下是相同的精彩文章:https://toddmotto.com/digging-into-angulars-controller-as-syntax/

答案 5 :(得分:0)

假设你想保持vm模式只是添加到控制器上,

vm.elim = elim;

至少现在应该提醒。