【问题标题】:AngularJS+Flask Failed to instantiate module [duplicate]AngularJS + Flask无法实例化模块[重复]
【发布时间】:2017-07-16 12:32:47
【问题描述】:

我几乎到处都在寻找这个,但如果我最终遗漏了什么,请原谅我。 这是我的html:

<!DOCTYPE html>
<html>
<head>
    <title>PDFHandle</title>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.5/angular.js"></script>
    <script type="text/javascript" src="{{ url_for('static', filename='custom.js') }}"></script>
</head>
<body>
    {% raw %}
        <div ng-app="uploadApp" ng-controller="UploadController as uc">
            <div ng-repeat="choice in uc.choices">
                <input value="{{choice.value}}" />
            </div>
            <button ng-click="uc.addChoice()">Add</button>
        </div>
    {% endraw %}
</body>
</html>

这是我的 AngularJS 脚本:

var Try = angular.module("uploadApp", [])
.controller("UploadController", function UploadController() {
    this.choices = [{id: "choice1", value:"Hello"}];
    this.addChoice = function() {
        return this.choices.push({id:"choice"+(this.choices.length+1), value:"Hello Again"});
    };
})

我面临的问题是这样的(显示在 Chrome 的开发者工具中):

Uncaught Error: [$injector:modulerr] Failed to instantiate module uploadApp due to:
Error: [$injector:nomod] Module 'uploadApp' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.

我可以通过正常地将它与 HTML 文件链接来运行它,只是当我尝试将它与烧瓶渲染的 HTML 一起使用时它不起作用。我也尝试过使用其他 Angular IDE,并且在它们中也可以正常工作。就像我说的,只是不适用于烧瓶。 任何帮助将不胜感激。谢谢!

【问题讨论】:

    标签: python angularjs flask


    【解决方案1】:

    像这样改变你的控制器

    var Try = angular.module("uploadApp", []);
    Try.controller("UploadController", function() {
        this.choices = [{id: "choice1", value:"Hello"}];
        this.addChoice = function() {
           this.choices.push({id:"choice"+(this.choices.length+1), value:"Hello Again"});
        };
    })
    

    【讨论】:

    • 不,这也没用。
    • 你遇到了什么错误?
    • 与问题中提到的完全相同。它有点大,所以我不能把它全部放在这里,但它基本上说明了 angular.js 中遇到错误的所有行。
    • 我认为问题在于您试图动态加载的 sript 标签。检查您的浏览器是否正在加载该脚本
    • 天啊。脚本正在加载,但它不是正确的脚本。静态目录中的 custom.js 不是正在加载的,而是在加载一个疯狂过时的 custom.js。我将清除缓存并再试一次,我会让你知道它是否有效。这将以一种或另一种方式被选择。
    【解决方案2】:

    你可以这样试试,

    angular.module("uploadApp", [])
    .controller("UploadController", function UploadController() {
        this.choices = [{id: "choice1", value:"Hello"}];
        this.addChoice = function() {
            return this.choices.push({id:"choice"+(this.choices.length+1), value:"Hello Again"});
        };
    })
    

    【讨论】:

    • 同样的问题。这就是我最初在做的事情,但后来转而尝试其他的东西。
    • 尝试用 {% raw %} 包装整个 html
    猜你喜欢
    • 2014-05-30
    • 2014-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多