请允许我首先说我是专业的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);
}
答案 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>