2014-12-05 72 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