角度ng-click错误

时间:2016-04-13 05:03:33

标签: javascript angularjs

<li role="menuitem"><a href="#" ng-click='getData1()'>Day</a></li>
<li role="menuitem"><a href="#" ng-click='getWData2()'>Week</a></li>
<li role="menuitem"><a href="#" ng-click='getMData3()'>Month</a></li>

我定义了这三个HTML元素,点击后我想在Angular中调用一个函数。问题是我在角度中定义了三个函数,这些函数执行相同的操作但使用不同的参数。如何将固定参数传递给此函数以传入字符串,从而帮助我创建一个名为getData()的可重用函数:

<li role="menuitem"><a href="#" ng-click='getData('Day')'>Day</a></li>
<li role="menuitem"><a href="#" ng-click='getData('Week')'>Week</a></li>
<li role="menuitem"><a href="#" ng-click='getData('Month')'>Month</a></li>

这是功能:

$scope.getDayData = function(day){
$scope.currentInterval = "day";

$http.get("http://localhost:8080/" + day)
.then(function(response) {


    });

2 个答案:

答案 0 :(得分:1)

ng-click更改为

<li role="menuitem"><a href="#" ng-click="getData('Day')">Day</a></li>
<li role="menuitem"><a href="#" ng-click="getData('Week')">Week</a></li>
<li role="menuitem"><a href="#" ng-click="getData('Month')">Month</a></li>

因为单个引号',您会遇到意外的字符错误。

<!DOCTYPE html>
<html ng-app="myApp">
  <head>
  <script data-require="angular.js@1.4.8" data-semver="1.3.0-beta.5" src="https://code.angularjs.org/1.3.0-beta.5/angular.js"></script>
  
</head>
<body ng-app="myApp" ng-controller="myCtrl"> 
  
    <li role="menuitem"><a href="#" ng-click="getData('Day')">Day</a></li>
<li role="menuitem"><a href="#" ng-click="getData('Week')">Week</a></li>
<li role="menuitem"><a href="#" ng-click="getData('Month')">Month</a></li>
    <script>
    //module declaration
    var app = angular.module('myApp', []);
    //controller declaration
    app.controller('myCtrl',function($scope){
       
        
  $scope.getData = function(data) {

   console.log(data);
  }

    });
    </script> 
</body> 

</html>

答案 1 :(得分:0)

您应该对属性使用双引号,因为您使用单引号传递参数:

<li role="menuitem"><a href="#" ng-click="getData('Day')">Day</a></li>
<li role="menuitem"><a href="#" ng-click="getData('Week')">Week</a></li>
<li role="menuitem"><a href="#" ng-click="getData('Month')">Month</a></li>

这可能不适用于某些浏览器。其余的看起来不错。