Angular.js"typeError:V2.example不是函数"错误

To *_* Be 4 html angularjs

我是angular.js的新手,我正在按照大约一年前制作的教程,我正在尝试创建一个搜索功能,在Github.com中输入并搜索它.HTML代码是:

<!DOCTYPE html>
<html ng-app="github">

<head>
    <script src="angular.min.js"></script>
    <script src="script.js"></script>
</head>

<body ng-controller="main">
    <h1>{{message}}</h1>
    <p> {{username}} </p>
    <form name="search">
        <input type="search" placeholder="enter name" ng-model="username">
        <button type="submit" ng-click="search(username)">search</button>
    </form>
    <div>
        <h1> {{user.login}} </h1>
        <img src="http://www.gravatar.com/avatar/{{user.gravatar_id}}">
        <p> {{user.type}} </p>
    </div>
</body>

</html>
Run Code Online (Sandbox Code Playgroud)

和JS代码:

// Code goes here
(function () {
    var app = angular.module("github", []);
    var main = function ($scope, $http) {
        var onComplete = function (response) {
            $scope.user = response.data;
        };
        var onError = function (reasone) {
            $scope.error = "no can";
        };
        $scope.search = function (username) {
            $http.get("http://api.github.com/users/" +username).then(onComplete, onError);
        };
        $scope.message = "Git hub viewer";
    };
    app.controller("main", ["$scope", "$http", main]);
}());
Run Code Online (Sandbox Code Playgroud)

这给了我一个错误>>> TypeError:v2.search不是函数<<<求助:我遇到了类似的问题,解决方案是不使用全局类型的"main"函数,但"搜索"不是全局的我猜..希望这个帮助

这是codepen链接:

http://codepen.io/ToBeM12/pen/vGvwzo

Rex*_*van 15

该函数与另一个变量具有相同的名称,并且在$ scope中存在冲突

在你的情况下只需更换$scope.search,$scope.searchuser因为$scope.search已经定义..


Int*_*tor 8

我见过表单名称与作用域函数或变量名称相同的问题.尝试将表单重命名为"searchForm"以避免与$ scope.search冲突.