javascript - 使用 AngularJS 进行文件哈希处理

标签 javascript angularjs hash gruntjs requirejs

我目前正在从事基于 angularAMD 的 Angualar JS 项目。

链接:http://marcoslin.github.io/angularAMD/#/home

这里我们只包含 Controller 所需的必要依赖文件,而不是所有文件。

例如。

define(['angularAMD', 'common/services/service1', 'module1/services/service2',], function (angularAMD) {
    'use strict';

    angularAMD.controller('abcController', function ($scope, service1, service2) {

              // controller code goes here 
    }

我已经尝试过 Grunt Hashing 但是
Grunt 提供散列,但散列文件的位置发生变化。

这不会更改单个 Controller 内文件的路径,因此应用程序无法运行。即 service1, service2

问题
我想知道当我们包含一个新文件时是否有办法对文件进行哈希处理?

有没有其他方法可以解决这个问题?

提前致谢

最佳答案

你如何设置你的模块。你的 main.js 可能看起来像这样

'use strict';
require.config({
    waitSeconds: 0,
    urlArgs: "bust=v1.0.0",
    paths: {
        bootstrap: 'Scripts/bootstrap.min',
        jquery: 'Scripts/jquery-1.10.2.min',
        angular: 'Scripts/angular.min',
        angularRoute: 'Scripts/angular-route.min',
        angularAMD: 'Scripts/angularAMD.min',
        app: 'ngApp/app',
        appConfig: 'ngApp/app.config',

        /*register Services - Start*/
        service1: 'ngServices/Common/service1',
        service2: 'ngServices/module/service2',
        /*register Services - End*/

        /*register Filters - Start*/

        /*register Filters - End*/

        /*register Controllers - Start*/

        /*register Controllers - End*/



    },

    // specifying library dependencies
    shim: {
        'bootstrap':{ deps:['jquery']},
        'angular': { deps: ['jquery'], exports: 'angular' },
        'angularRoute': { deps: ['angular'] },
        'angularAMD': { deps: ['angular'] }
    },

    // define application bootstrap
    deps: ['app']
});

在你的 index.html 中

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1">
</head>

<body data-ng-controller="appController as appCtrl" ng-cloak>
        <div >
                <ng-view></ng-view>
        </div>
    </div>
    <script data-main="main" src="Scripts/require.js"></script>
</body>
</html>

在你的 Controller 中

'use strict';
define(['angularAMD', 'service1', 'service2'],
function (angularAMD) {

    angularAMD.controller('abcController', ['service1', 'service2',
    function (service1, service1) {
        var self = this,
         // your code
    }]);
});

关于javascript - 使用 AngularJS 进行文件哈希处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38894881/

相关文章:

ruby-on-rails - 按其他散列中的值对散​​列进行排序 - Ruby on Rails

javascript - d3 对其他需要文件中的节点哈希更改没有反应

javascript - 带有 Promise 的 Foreach 不等待方法结果

javascript - 使用 ClearScript 将 XmlDocument 公开给 JScript 时遇到困难

angularjs - Angular 应用程序在 Firefox 中中断

jquery - 使用 Angular JS 的 Slick Carousel

algorithm - Cuckoo Filters : Why exactly 7 counts?(如实体插入的 "limited count"所示。)

javascript - 在javascript中循环遍历数组中的对象

javascript - 为什么 JavaScript 会出现按位运算的奇怪行为?

javascript - 如何在运行时添加 SVG 元素 - Angular