mainController不会被调用(Angular.js)

时间:2018-04-06 10:39:25

标签: javascript angularjs

这是我的html文件。

<!DOCTYPE html>
<html lang="en">
<head ng-app="drawings">
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script><!-- load jquery -->
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.8/angular.min.js"></script><!-- load angular -->
    <script src="https://cdn.jsdelivr.net/npm/lodash@4.17.5/lodash.min.js"></script>
    <script src="drawings_core.js"></script>
</head>
<body ng-controller="mainController">
</body>
</html>

这是我的drawings_core.js文件。

var app = angular.module('drawings',[]);
var drawing;

function mainController($scope,$http){


    $http.get('/get_drawing').success(function(data){
        console.log(data);
    }).error(function(err){cosnole.log(err);});


}

mainController函数的内容不会被调用。 未发送请求。

1 个答案:

答案 0 :(得分:0)

您需要在应用程序中注册控制器。代码看起来像这样,但是没有经过测试,你可能需要进行一些小改动。

我建议为您的功能创建单独的方法。然后你可以像我在这个例子中那样打电话给他们。

更好的方法是创建一个单独的服务来处理http内容。

我在这里有一个例子:https://eidand.com/2015/01/22/starting-with-angular-part-3-services/

它已经老了,但它应该足以让你开始。

function thirdPartyAPIMethod() //dummy method returning promise
{
   return Promise.resolve();
}


function func1() {
    return new Promise((resolve, reject) => {
        console.log("func1 start");
        thirdPartyAPIMethod().then( () => {
           console.log("func1 end");
           resolve(); //invoke resolve here so that func1() is chained with func2 
        });
    });
}

function func2() {
    console.log("func2 start");
    console.log("func2 end");
}

func1().then( () => func2()); // then has function callback handler instead of return value of func2