当我进入$ scope.variabel时为什么ng-click不工作?

时间:2017-02-14 07:56:26

标签: javascript angularjs angularjs-directive angularjs-scope

我有问题,我的ngclick没有工作,因为我进入了$ scope.variabel控制器。

$scope.states = {}; $scope.states.activeItem = 'nav1'; $scope.items = [{ id: 'nav1', target: 'home()', title: 'Home', icon: 'fa fa-home fa-3x' }, { id: 'nav2', target: 'data_1()', title: 'Data 1', icon: 'fa fa-briefcase fa-3x' }, { id: 'nav3', target: 'data_2()', title: 'Data 2', icon: 'fa fa-briefcase fa-3x' }, { id: 'nav4', target: 'data_3()', title: 'Data 3', icon: 'fa fa-briefcase fa-3x' }, { id: 'nav5', target: 'data_4()', title: 'Data 4', icon: 'fa fa-briefcase fa-3x' }, { id: 'nav6', target: 'data_5()', title: 'Data 5', icon: 'fa fa-briefcase fa-3x' }];

我认为当我们拨打{{item.target}}但是没有工作时,目标可以在ng-click中使用,对我来说有什么解决方案吗?感谢

这是我的代码:

控制器

<li ng-repeat="item in items" ng-class="{'active': item.id == states.activeItem}" ng-click="states.activeItem = item.id">
<a id="data_table" ng-click="{{ item.target }}">
<i class="{{ item.icon }}" aria-hidden="true"></i>
<span class="title">{{ item.title }}</span>
<span class="selected"></span>
</a>
</li>

查看

=COUNTIFS(database!I10:I2164,">=1/7/1997",database!I10:I2164,"<=31/12/1997",database!I10:I2164,">=1/7/1998",database!I10:I2164,"<=1/12/1998")

3 个答案:

答案 0 :(得分:2)

在控制器中:将target: 'home()',更新为target: home,,其中home是一个功能。

在视图中:使用ng-click="item.target()"

答案 1 :(得分:1)

ng-click cannot expression 一起使用,调用函数并传递对象,

ng-click="doSomething(item)"

在控制器中:

$scope.doSomething = function(item){
//do it here
}

答案 2 :(得分:1)

我猜您正在从API的JSON响应中检索数据。我说在callToAction中创建一个包装方法target,就像变量名称&amp;然后在ng-click上调用方法。

<强>标记

<a id="data_table" ng-click="callToAction(item.target)"

$scope.callToAction = function(actionName){
   $scope[actionName]();
}