gpt4 book ai didi

angularjs - Angular 1.6.9 @uiRouter : Error: [ng:cpws] Can't copy! 不支持复制 Window 或 Scope 实例

转载 作者:行者123 更新时间:2023-12-02 03:40:38 26 4
gpt4 key购买 nike

我正在尝试使用 gulp-browsify 加载一个 app-release.js 文件中的所有依赖项。

该文件构建良好,但当我尝试注入(inject) @uiRouter 依赖项时,我在浏览器中收到以下错误 enter image description here

就像我注入(inject)Angular-route一样,它工作得很好。

这是代码

gulpfile.js

var gulp = require('gulp');
var rename = require('gulp-rename');
var browserify = require('gulp-browserify');
var buffer = require('gulp-buffer');

gulp.task('default', function() {
gulp.src('app.js')
.pipe(browserify({
insertGlobals: false,
debug: true
}))
.pipe(buffer())
.pipe(rename('app-release.js'))
.pipe(gulp.dest('app/'));
});

app.js

var angular = require('angular');
var uiRouter = require('@uirouter/angularjs');
var ngRoute = require('angular-route');

var app = angular.module("app",[uiRouter]);

app.config(function($stateProvider) {
var helloState = {
name: 'hello',
url: '/',
template: '<h3>hello world!</h3>'
}

var aboutState = {
name: 'about',
url: '/about',
template: '<h3>Its the UI-Router hello world app!</h3>'
}

$stateProvider.state(helloState);
$stateProvider.state(aboutState);
});

index.html

<!DOCTYPE html>
<html lang="en" ng-app="app">
<head>
<meta charset="UTF-8">
<title>Ui Router Test</title>
<!--<script type="text/javascript" src="/node_modules/angular/angular.js"></script>-->
<script src="app/app-release.js" type="application/javascript"></script>
</head>
<body>
<a ui-sref="hello">Hello</a>
<a ui-sref="about">About</a>
<p></p>
<!--<a href="#!red">Red</a>-->
<!--<a href="#!green">Green</a>-->
<!--<a href="#!blue">Blue</a>-->
<!--<div ng-view></div>-->
<ui-view></ui-view>

</body>
</html>

感谢您提供帮助:)

最佳答案

我可能来不及帮助你了,但这也许会帮助别人,问题是 uiRouter 模块的定义方式,你设置 uiRouter 变量的方式包含一个对象,即 UiRouter 对象,但它期望将一个字符串注入(inject)到您的模块声明中。

该字符串可以从默认导出中获取,获取该字符串的方式是通过声明 var uiRouter = require('@uirouter/angularjs').default ,这与您的方式相反执行上面的操作。

一旦你在最后声明了.default,你的变量将保存字符串“ui.router”而不是UI Router对象现在您可以像您所做的那样传递该变量。

请注意,如果您使用 ES6 样式的导入语句而不是 commonJs require,则不会遇到此问题。

TLDR

.default 添加到 uiRouter require 调用的末尾。

关于angularjs - Angular 1.6.9 @uiRouter : Error: [ng:cpws] Can't copy! 不支持复制 Window 或 Scope 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48771684/

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