将Angular.js绑定到javascript函数

时间:2014-12-05 16:14:45

标签: javascript angularjs

请允许我首先说我是专业的C ++开发人员,并且具有极差的javascript技能,所以如果这是一个基本问题,请原谅我。我想要做的是从Angular绑定生成一个字符串,并将其传递给javascript中的函数。我在下面列举了一个例子。请注意,我正在尝试将{{x.VodName}}传递给名为“MyFunction(vodName)”的函数。提前谢谢!

<tr ng-repeat="x in names">
<td><a id="myLink" href="#" onclick="MyFunction({{ x.VodName }});">{{ x.VodName }}</a></td>
<td>{{ x.Stream }}</td>
<td>{{ x.ReplayTime }}</td>
<td>{{ x.Duration }}</td>
<td>X</td>

<script>
function MyFunction(vodName)
{
    window.alert(vodName);
}

2 个答案:

答案 0 :(得分:2)

在模板中,您可以通过将函数赋予函数来为函数赋予变量。而不是onclick你应该使用ng-click

<tr ng-repeat="x in names">
  <td><a id="myLink" href="#" ng-click="MyFunction(x.VodName);">{{ x.VodName }}</a></td>
  <td>{{ x.Stream }}</td>
  <td>{{ x.ReplayTime }}</td>
  <td>{{ x.Duration }}</td>
  <td>X</td>
</tr>

为了在控制器中运行,了解var MyFunction = function(name){}function MyFunction(name){}之间的区别非常重要。有关详细信息,请查看here

答案 1 :(得分:0)

尝试这样的事情,你的控制器可能是这样的:

<script>
var vapp = angular.module("vapp", []);
vapp.controller("videoController", ["$scope", function($scope){
    $scope.names = [];

    $scope.play = function(files){
      alert(files.VodName);
    };
}]);
</script>

和你的html:

<table ng-controller="videoController">
    <tr ng-repeat="x in names">
      <td><a id="myLink" href="#" ng-click="play(x);">{{ x.VodName }}</a></td>
      <td>{{ x.Stream }}</td>
      <td>{{ x.ReplayTime }}</td>
      <td>{{ x.Duration }}</td>
      <td>X</td>
    </tr>
</table>