相关疑难解决方法(0)

动态加载AngularJS控制器

我有一个现有的页面,我需要删除一个带有可以动态加载的控制器的角度应用程序.

这是一个片段,它根据API和我发现的一些相关问题实现了我应该如何完成的最佳猜测:

// Make module Foo
angular.module('Foo', []);
// Bootstrap Foo
var injector = angular.bootstrap($('body'), ['Foo']);
// Make controller Ctrl in module Foo
angular.module('Foo').controller('Ctrl', function() { });
// Load an element that uses controller Ctrl
var ctrl = $('<div ng-controller="Ctrl">').appendTo('body');
// compile the new element
injector.invoke(function($compile, $rootScope) {
    // the linker here throws the exception
    $compile(ctrl)($rootScope);
});
Run Code Online (Sandbox Code Playgroud)

JSFiddle.请注意,这是实际事件链的简化,上面的行之间有各种异步调用和用户输入.

当我尝试运行上面的代码时,$ compile返回的链接器抛出:Argument 'Ctrl' is not a function, got undefined.如果我正确理解了引导程序,它返回的注入器应该知道Foo模块,对吧?

相反,如果我使用一个新的注入器angular.injector(['ng', 'Foo']),它似乎工作,但它创建一个新的$rootScope,不再与Foo模块被引导的元素相同的范围. …

javascript angularjs

64
推荐指数
3
解决办法
8万
查看次数

创建一个包含外部文件夹的网页

以前,我曾经$sce.trustAsHtml(aString)<html>...</html>模板中注入一个字符串(例如),<div ng-bind-html="content"></div>以便在加载生成的URL时显示图形:

.state('urls', {
    url: '/urls/{id}',
    template: '<div ng-bind-html="content"></div>',
    controller: 'UrlCtrl',
    resolve: {
        url: ['$stateParams', 'urls', function ($stateParams, urls) {
            return urls.get($stateParams.id);
        }]
    }
})

app.controller('UrlCtrl', ['$sce', '$scope', 'url', function($sce, $scope, url) {
    $scope.content = $sce.trustAsHtml(url.content);
}]);
Run Code Online (Sandbox Code Playgroud)

现在,生成图形的html包含对其他文件的引用,例如<script src="script.js"></script>.所以,我需要的文件的文件夹(.html,.css,.js)绘制的图表.我可以将整个文件夹放在我的服务器中,但问题是如何将这些文件注入模板.

我试过templateUrl: 'http://localhost:3000/tmp/ZPBSytN5GpOwQN51AAAD/index.html',localhost:3000/#/urls/58b8c55b5d18ed6163324fb4在浏览器中加载确实加载了html页面.但是,script.js未加载,Failed to load resource: the server responded with a status of 404 (Not Found) …

javascript canvas angularjs angular-ui-router angularjs-sce

13
推荐指数
1
解决办法
928
查看次数

Angular模板中的Javascript广告

我正在尝试在我的Angular模板中呈现Javascript广告,但它不会显示.当我们将Javascript附加到head标签时我找到了一些解决方案,但我希望将广告放在我的Html(body body)中.

这是一个Plunker:https://plnkr.co/edit/WHhQ95gS5HKSphmmirio

这是一个简单的简单Html示例.

    <html>
    <head>
    </head>
    <body>
    <div class="ad">
       <script src="http://media.affiliatelounge.com/data/nordicbet/ad_js/display_88.js?ad=ad_793270_88.html&amp;size=300x250&amp;clicktag=http://record.affiliatelounge.com/_sVuSoFFh4LK58VwA2IUESrKVVrME-Gsw/1&amp;media=108786&amp;campaign=1"></script>
    </div>
    </body>
    </html>
Run Code Online (Sandbox Code Playgroud)

但是,如果我在Angular模板中添加div,它将无法渲染,控制台也没有任何内容.

我在这里播放并运行了一些广告(http://www.odds.nu/erbjudanden),但它们是.gif或iframe.我希望能够显示Javascript广告.它们被添加到Html中,但不会被渲染(放在页面底部).

$ sce或$ compile可以帮助吗?

我的index.html

    <div data-ng-view="" class="mainView"></div>
Run Code Online (Sandbox Code Playgroud)

我的app.js.

    $routeProvider.when("/erbjudanden", {
          controller: "offerController",
          templateUrl: "/app/templates/offers.html"
    });
Run Code Online (Sandbox Code Playgroud)

我的offer.html

    <div class="ad">
       <script src="http://media.affiliatelounge.com/data/nordicbet/ad_js/display_88.js?ad=ad_793270_88.html&amp;size=300x250&amp;clicktag=http://record.affiliatelounge.com/_sVuSoFFh4LK58VwA2IUESrKVVrME-Gsw/1&amp;media=108786&amp;campaign=1"></script>
    </div>
Run Code Online (Sandbox Code Playgroud)

有解决方案吗

javascript ads angularjs angular-template

7
推荐指数
1
解决办法
1455
查看次数

为什么ng-scope被添加到我的局部视图内联的javascript中并使警报无效?

我正在使用AngularJs和模板系统.我想为每个模板添加特定的内联javascript脚本,为选定的选项卡添加警告框(主页|列表|设置)

Html呈现: 但是添加了ng-scope,并且在更改选项卡时没有任何警报.

<script type="text/javascript" class="ng-scope">alert("home")</script>
Run Code Online (Sandbox Code Playgroud)

我在这里提供示例:

http://bit.ly/HWcN1H

或者在这里

带有alert("template1")的plunkr示例存在于template1.html中,但呈现为

<script type="text/javascript" class="ng-scope">alert("template1")</script>
Run Code Online (Sandbox Code Playgroud)

partials angularjs angularjs-scope angularjs-view

5
推荐指数
1
解决办法
6565
查看次数

如何加载javascript文件和ng-include模板

我使用下面的代码将模板包含在我的主文件中.

<p ng-include=" 'activity.html' "></p>
Run Code Online (Sandbox Code Playgroud)

我的activity.html是这样的,

<script type="text/javascript" src="myjsfile.js"></script>

<p>Activity page contents</p>
Run Code Online (Sandbox Code Playgroud)

但是javascript没有随模板一起加载.

我在SO中发现了一些与此相关的问题,但无法找到可行的解决方案.其中一个答案是在主文件中将angular js加载到angularjs之上,这样脚本标记就会被接受.但没有发现它有效.

javascript jquery angularjs

2
推荐指数
1
解决办法
1万
查看次数