如何将按钮的值传递给角度js

时间:2014-10-13 09:20:53

标签: javascript html5 angularjs

我想通过函数将我的按钮值传递给角度js。我尝试使用ng-model传递函数,但是在按钮的情况下它不起作用。所以任何人都可以提前帮助我这件事

HTML:

<p align="center">
    <a href="#category1" id="select1" ng-model="select1" data-transition="slidedown" class="ui-btn ui-corner-all" value="Category 1" ng-click="catFn1()">Category 1</a>
</p>

angular js:

$scope.catFn1 = function () {
    var sel1 = document.getElementById('select1').innerHTML;
    alert(sel1);
    sharedService.prepForBroadcast(sel1); //----- making the button value available through out the code
    return dict1(sel1);
}

function dict1(sel1) {
    alert(sel1);
    $("#dictation1").click(function () {
        window.location = "#pageeight";
    });
}

我实际上想使用工厂方法执行控制器通信,我知道通过这种方法进行通信。所以我需要通过函数传递我的价值。所有的答案都是有价值的。

3 个答案:

答案 0 :(得分:2)

您可以通过e.target属性访问当前对象。从那里,您可以获取value属性。

 <a href="#category1" ng-click="catFn1($event)" data-value="Category 1" data-transition="slidedown" class="ui-btn ui-corner-all">Category 1</a>

在控制器中:

$scope.catFn1 = function (e) {
    var sel1 = e.target.getAttribute('data-value');
    sharedService.prepForBroadcast(sel1);
    return dict1(sel1);
}

答案 1 :(得分:1)

plnkr = http://plnkr.co/edit/b1bFqZdoGVNyC5KOCkJp?p=preview

ng-click的值是一个表达式,见下文:

<!DOCTYPE html>
<html>

  <head>
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.4/jquery.mobile-1.4.4.min.css">

    <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.4.4/jquery.mobile-1.4.4.min.js"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.26/angular.js"></script>
  </head>

  <body ng-app>
    <p align="center">
      <a href="#category1" 
          id="select1" 
          ng-model="select1" 
          data-transition="slidedown" 
          class="ui-btn ui-corner-all" 
          value="Category 1" 

          ng-click="catFn1();select1 = $event.target.attributes.getNamedItem('value').textContent">

          Category 1

      </a>

      select1 = {{ select1 }}
    </p>
  </body>

</html>

答案 2 :(得分:0)

首先,它不是一个按钮,它是一个锚点。

试试这个:

<a href="url" onclick="test(this)">Text</a>

function test(control){

alert(control.innerHTML)

}