2014-12-05 74 views
1

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

<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

不使用'onClick',使用角'ng-click'以及作为控制器作用域的一部分的函数 – charlietfl 2014-12-05 16:18:53

回答

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> 
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