从控制器角度传递一个数组

时间:2015-07-26 23:47:11

标签: javascript arrays angularjs

我是Angular的新手。我在这里有一个函数,我想从数组中选择一个随机名来显示。

在我的控制器中,我设置了一个名为names的数组。然后我想将它传递给我的$scope.message函数并从我的html中调用它。

我一直收到错误:

"Error: [$interpolate:interr] Can't interpolate: 
        {{message(names)}}
        {{}}

我的控制员:

eventsApp.controller("EventController", function EventController($scope)
{

    var names = ["David", "Tony", "Tim", "David", "Daniel", "Tom"];

    var randomChoose = function(array){
        return Math.floor(Math.random() * array.length-1);

    };
    $scope.message = function(array){
        var name = array.indexOf(randomChoose(array));
        return "Hello"+name;
    };
});

我的HTML:

<div class="container">
    <div ng-controller="EventController">
        {{message(names)}}
        {{}}
    </div>

</div>

谢谢。我尝试将names更改为$scope.names,但这似乎无效。

1 个答案:

答案 0 :(得分:1)

你的随机性逻辑似乎错了,工作example

function EventController($scope) {
    $scope.names = ["David", "Tony", "Tim", "David", "Daniel", "Tom"];

    var randomChoose = function(array){
        return array[Math.floor(Math.random() * array.length)];
    };

    $scope.message = function(array){
        var name = randomChoose(array);
        return "Hello " + name;
    };

}