gpt4 book ai didi

javascript - Angular Resource 导致 View 消失

转载 作者:行者123 更新时间:2023-12-02 14:12:43 27 4
gpt4 key购买 nike

我开始开发一个 AngularJS 应用程序,只有一个路由 /login。以下是处理该路由的 Controller 的代码。

angular = require('angular');
// require('../resources/loginResource');


var di = ['$scope'];

var controller = function LoginCtrl($scope) {
$scope.myArray = [
"foo",
"bar",
"baz"
];
};

angular.module('myApp', [])
.controller('LoginCtrl', di.concat(controller) );

当文件中的第二行(对 loginResource 的引用)被注释时,页面/login 显示得很好。但是当我取消注释时,页面呈现空白。没有控制台错误,终端输出中没有任何内容。

这是loginResource 文件:

angular = require('angular');
require('angular-resource');

var app = angular.module('myApp', ['ngResource']);

var di = ['$resource'];

var myResource = function Foobar($resource) {
return $resource('http://mockbin.org/bin/c7bb5923-18ec-4e2f-9189-df8fb80b606b');
};

app.factory('Foobar', di.concat(myResource));

我正在使用 gulp 和 Browserify。

这似乎是注入(inject)使用 $service 的服务的正确方法。如果是这样,为什么页面渲染为空白?

最佳答案

问题在于 myApp 模块的重复定义。在您的第一个片段中,您有:

angular.module('myApp', [])

在你的第二个中,你有:

var app = angular.module('myApp', ['ngResource']);

您需要在第二个代码段中为模块使用不同的名称,并且需要在应用程序模块的配置中包含该名称。

将第一个片段更改为如下所示:

angular = require('angular');
require('../resources/loginResource');
...
angular.module('myApp', ['loginResource']) ...

并将第二个更改为类似的内容(也重命名 app 变量可能是个好主意 - 因为它不是应用程序模块):

angular = require('angular');
require('angular-resource');

var mod = angular.module('loginResource', ['ngResource']);
...
mod.factory('Foobar', di.concat(myResource));

关于javascript - Angular Resource 导致 View 消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39376963/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com