尝试使用ng-click删除列表,但html和控制器似乎没有通信。
L = [e for i,e in enumerate(L) if i % 2]
单击图标时至少应该有警报,但没有任何反应。建议?
答案 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;
至少现在应该提醒。