将数据从控制器发送到js功能

时间:2014-06-28 13:43:26

标签: javascript angularjs

我有控制器:

function NameController($scope){
        $scope.data = {
            name: 'Alex',
        }
    }

和HTML

    <div ng-controller="NameController">
        <a href="#" onclick="alert( {{data.name}} );"> ClickMe </a>
    </div>

为什么它不起作用以及它是如何工作的? 感谢名单。

3 个答案:

答案 0 :(得分:1)

当您在视图中调用alert时,它实际上正在查找未定义的$scope.alert。您可以在控制器中创建一个alert函数来调用javascript alert函数:

$scope.alert = function(data){
   alert(data);
};  

您还应该使用ng-click代替onclick

<a href="#" ng-click="alert(data.name)"> ClickMe </a>

ng-click采用角度表达式。如果您使用onclick,则javascript(非角度)会尝试处理点击事件,但它无法理解{{data.name}}是什么。

Demo

答案 1 :(得分:0)

试试这个:

<a href="#" onclick="alert( '{{data.name}}' );"> ClickMe </a>

答案 2 :(得分:0)

您可以使用ng-click AngularJs指令

所以你的HTML应该是这样的:

<div ng-controller="NameController">
    <a href="#" ng-click="alert( {{data.name}} );"> ClickMe </a>
</div>

在控制器中你必须定义警告功能,如

 function NameController($scope){
    $scope.alert = function(name) {
        alert(name);
    }
 }