Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 咕噜声发球效果很好,但咕噜声发球:给出奇怪行为的距离_Javascript_Gruntjs_Angular Fullstack - Fatal编程技术网

Javascript 咕噜声发球效果很好,但咕噜声发球:给出奇怪行为的距离

Javascript 咕噜声发球效果很好,但咕噜声发球:给出奇怪行为的距离,javascript,gruntjs,angular-fullstack,Javascript,Gruntjs,Angular Fullstack,我的应用程序可以与grunt Service配合使用,但当我使用grunt Service:dist测试它并尝试加载我用按钮触发的模式时,单击它会显示附加到$mdDialog.show的“templateUrl”,但从不显示控制器 在这里,我提供的文件供参考,问我你是否需要任何其他文件以及 Grunfile.js // Generated on 2016-10-17 using generator-angular-material-fullstack 0.1.2 'use strict'

我的应用程序可以与grunt Service配合使用,但当我使用grunt Service:dist测试它并尝试加载我用按钮触发的模式时,单击它会显示附加到$mdDialog.show的“templateUrl”,但从不显示控制器

在这里,我提供的文件供参考,问我你是否需要任何其他文件以及

Grunfile.js

// Generated on 2016-10-17 using generator-angular-material-fullstack 0.1.2 'use strict'; module.exports = function (grunt) { var localConfig; try { localConfig = require('./server/config/local.env'); } catch(e) { localConfig = {}; } // Load grunt tasks automatically, when needed require('jit-grunt')(grunt, { express: 'grunt-express-server', useminPrepare: 'grunt-usemin', ngtemplates: 'grunt-angular-templates', cdnify: 'grunt-google-cdn', protractor: 'grunt-protractor-runner', buildcontrol: 'grunt-build-control' }); // Time how long tasks take. Can help when optimizing build times require('time-grunt')(grunt); // Define the configuration for all the tasks grunt.initConfig({ // Project settings pkg: grunt.file.readJSON('package.json'), yeoman: { // configurable paths client: require('./bower.json').appPath || 'client', dist: 'dist' }, express: { options: { port: process.env.PORT || 9000 }, dev: { options: { script: 'server/app.js', debug: true } }, prod: { options: { script: 'dist/server/app.js' } } }, open: { server: { url: 'http://localhost:' } }, watch: { injectJS: { files: [ '/{app,components}/**/*.js', '!/{app,components}/**/*.spec.js', '!/{app,components}/**/*.mock.js', '!/app/app.js'], tasks: ['injector:scripts'] }, injectCss: { files: [ '/{app,components}/**/*.css' ], tasks: ['injector:css'] }, mochaTest: { files: ['server/**/*.spec.js'], tasks: ['env:test', 'mochaTest'] }, jsTest: { files: [ '/{app,components}/**/*.spec.js', '/{app,components}/**/*.mock.js' ], tasks: ['newer:jshint:all', 'karma'] }, injectSass: { files: [ '/{app,components}/**/*.{scss,sass}'], tasks: ['injector:sass'] }, sass: { files: [ '/{app,components}/**/*.{scss,sass}'], tasks: ['sass', 'autoprefixer'] }, gruntfile: { files: ['Gruntfile.js'] }, livereload: { files: [ '{.tmp,}/{app,components}/**/*.css', '{.tmp,}/{app,components}/**/*.html', '{.tmp,}/{app,components}/**/*.js', '!{.tmp,}{app,components}/**/*.spec.js', '!{.tmp,}/{app,components}/**/*.mock.js', '/assets/images/{,*//*}*.{png,jpg,jpeg,gif,webp,svg}', '/assets/icons/{,*//*}*.{png,jpg,jpeg,gif,webp,svg}', '/assets/iconsets/{,*//*}*.{png,jpg,jpeg,gif,webp,svg}' ], options: { livereload: true } }, express: { files: [ 'server/**/*.{js,json}' ], tasks: ['express:dev', 'wait'], options: { livereload: true, nospawn: true //Without this option specified express won't be reloaded } } }, // Make sure code styles are up to par and there are no obvious mistakes jshint: { options: { jshintrc: '/.jshintrc', reporter: require('jshint-stylish') }, server: { options: { jshintrc: 'server/.jshintrc' }, src: [ 'server/**/*.js', '!server/**/*.spec.js' ] }, serverTest: { options: { jshintrc: 'server/.jshintrc-spec' }, src: ['server/**/*.spec.js'] }, all: [ '/{app,components}/**/*.js', '!/{app,components}/**/*.spec.js', '!/{app,components}/**/*.mock.js' ], test: { src: [ '/{app,components}/**/*.spec.js', '/{app,components}/**/*.mock.js' ] } }, // Empties folders to start fresh clean: { dist: { files: [{ dot: true, src: [ '.tmp', '/*', '!/.git*', '!/.openshift', '!/Procfile' ] }] }, server: '.tmp' }, // Add vendor prefixed styles autoprefixer: { options: { browsers: ['last 1 version'] }, dist: { files: [{ expand: true, cwd: '.tmp/', src: '{,*/}*.css', dest: '.tmp/' }] } }, // Debugging with node inspector 'node-inspector': { custom: { options: { 'web-host': 'localhost' } } }, // Use nodemon to run server in debug mode with an initial breakpoint nodemon: { debug: { script: 'server/app.js', options: { nodeArgs: ['--debug-brk'], env: { PORT: process.env.PORT || 9000 }, callback: function (nodemon) { nodemon.on('log', function (event) { console.log(event.colour); }); // opens browser on initial server start nodemon.on('config:update', function () { setTimeout(function () { require('open')('http://localhost:8080/debug?port=5858'); }, 500); }); } } } }, // Automatically inject Bower components into the app wiredep: { target: { src: '/index.html', ignorePath: '/', exclude: ['/json3/', '/es5-shim/'] } }, // Renames files for browser caching purposes rev: { dist: { files: { src: [ '/public/{,*/}*.js', '/public/{,*/}*.css', '/public/assets/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}', '/public/assets/icons/{,*/}*.{png,jpg,jpeg,gif,webp,svg}', '/public/assets/iconsets/{,*/}*.{png,jpg,jpeg,gif,webp,svg}', '/public/assets/fonts/*' ] } } }, // Reads HTML for usemin blocks to enable smart builds that automatically // concat, minify and revision files. Creates configurations in memory so // additional tasks can operate on them useminPrepare: { html: ['/index.html'], options: { dest: '/public' } }, // Performs rewrites based on rev and the useminPrepare configuration usemin: { html: ['/public/{,*/}*.html'], css: ['/public/{,*/}*.css'], js: ['/public/{,*/}*.js'], options: { assetsDirs: [ '/public', '/public/assets/images', '/public/assets/icons', '/public/assets/iconsets' ], // This is so we update image references in our ng-templates patterns: { js: [ [/(assets\/images\/.*?\.(?:gif|jpeg|jpg|png|webp|svg))/gm, 'Update the JS to reference our revved images'], [/(assets\/icons\/.*?\.(?:gif|jpeg|jpg|png|webp|svg))/gm, 'Update the JS to reference our revved icons'], [/(assets\/iconsets\/.*?\.(?:gif|jpeg|jpg|png|webp|svg))/gm, 'Update the JS to reference our revved iconsets'] ] } } }, // The following *-min tasks produce minified files in the dist folder imagemin: { dist: { files: [{ expand: true, cwd: '/assets/images', src: '{,*/}*.{png,jpg,jpeg,gif}', dest: '/public/assets/images' }] } }, svgmin: { dist: { files: [{ expand: true, cwd: '/assets/images', src: '{,*/}*.svg', dest: '/public/assets/images' }] } }, // Allow the use of non-minsafe AngularJS files. Automatically makes it // minsafe compatible so Uglify does not destroy the ng references ngAnnotate: { dist: { files: [{ expand: true, cwd: '.tmp/concat', src: '**/*.js', dest: '.tmp/concat' }] } }, // Package all the html partials into a single javascript payload ngtemplates: { options: { // This should be the name of your apps angular module module: 'testfullstackApp', htmlmin: { collapseBooleanAttributes: true, collapseWhitespace: true, removeAttributeQuotes: true, removeEmptyAttributes: true, removeRedundantAttributes: true, removeScriptTypeAttributes: true, removeStyleLinkTypeAttributes: true }, usemin: 'app/app.js' }, main: { cwd: '', src: ['{app,components}/**/*.html'], dest: '.tmp/templates.js' }, tmp: { cwd: '.tmp', src: ['{app,components}/**/*.html'], dest: '.tmp/tmp-templates.js' } }, // Replace Google CDN references cdnify: { dist: { html: ['/public/*.html'] } }, // Copies remaining files to places other tasks can use copy: { dist: { files: [ { expand: true, dot: true, cwd: '', dest: '/public', src: [ '*.{ico,png,txt}', '.htaccess', 'assets/images/{,*/}*.{webp}', 'assets/fonts/**/*', 'assets/icons/**/*', 'assets/iconsets/**/*', 'index.html' ] }, { expand: true, cwd: '.tmp/images', dest: '/public/assets/images', src: ['generated/*'] },{ expand: true, dot: true, cwd: '/bower_components/components-font-awesome/', src: ['fonts/*.*'], dest: '/public' }, { expand: true, dest: '', src: [ 'package.json', 'server/**/*' ] }] }, styles: { expand: true, cwd: '', dest: '.tmp/', src: ['{app,components}/**/*.css'] } }, buildcontrol: { options: { dir: 'dist', commit: true, push: true, connectCommits: false, message: 'Built %sourceName% from commit %sourceCommit% on branch %sourceBranch%' }, heroku: { options: { remote: 'heroku', branch: 'master' } }, openshift: { options: { remote: 'openshift', branch: 'master' } } }, // Run some tasks in parallel to speed up the build process concurrent: { server: [ 'sass' ], test: [ 'sass', ], debug: { tasks: [ 'nodemon', 'node-inspector' ], options: { logConcurrentOutput: true } }, dist: [ 'sass', 'imagemin', 'svgmin' ] }, // Test settings karma: { unit: { configFile: 'karma.conf.js', singleRun: true } }, mochaTest: { options: { reporter: 'spec' }, src: ['server/**/*.spec.js'] }, protractor: { options: { configFile: 'protractor.conf.js' }, chrome: { options: { args: { browser: 'chrome' } } } }, env: { test: { NODE_ENV: 'test' }, prod: { NODE_ENV: 'production' }, all: localConfig }, // Compiles Sass to CSS sass: { server: { options: { loadPath: [ '/bower_components', '/app', '/components' ], compass: false }, files: { '.tmp/app/app.css' : '/app/app.scss' } } }, injector: { options: { }, // Inject application script files into index.html (doesn't include bower) scripts: { options: { transform: function(filePath) { filePath = filePath.replace('/client/', ''); filePath = filePath.replace('/.tmp/', ''); return ''; }, starttag: '', endtag: '' }, files: { '/index.html': [ [ '{.tmp,}/{app,components}/**/*.js', '!{.tmp,}/app/app.js', '!{.tmp,}/{app,components}/**/*.spec.js', '!{.tmp,}/{app,components}/**/*.mock.js' ] ] } }, // Inject component scss into app.scss sass: { options: { transform: function(filePath) { filePath = filePath.replace('/client/app/', ''); filePath = filePath.replace('/client/components/', ''); return '@import \'' + filePath + '\';'; }, starttag: '// injector', endtag: '// endinjector' }, files: { '/app/app.scss': [ '/{app,components}/**/*.{scss,sass}', '!/app/app.{scss,sass}' ] } }, // Inject component css into index.html css: { options: { transform: function(filePath) { filePath = filePath.replace('/client/', ''); filePath = filePath.replace('/.tmp/', ''); return ''; }, starttag: '', endtag: '' }, files: { '/index.html': [ '/{app,components}/**/*.css' ] } } } }); // Used for delaying livereload until after server has restarted grunt.registerTask('wait', function () { grunt.log.ok('Waiting for server reload...'); var done = this.async(); setTimeout(function () { grunt.log.writeln('Done waiting!'); done(); }, 1500); }); grunt.registerTask('express-keepalive', 'Keep grunt running', function() { this.async(); }); grunt.registerTask('serve', function (target) { if (target === 'dist') { return grunt.task.run(['build', 'env:all', 'env:prod', 'express:prod', 'wait', 'open', 'express-keepalive']); } if (target === 'debug') { return grunt.task.run([ 'clean:server', 'env:all', 'injector:sass', 'concurrent:server', 'injector', 'wiredep', 'autoprefixer', 'concurrent:debug' ]); } grunt.task.run([ 'clean:server', 'env:all', 'injector:sass', 'concurrent:server', 'injector', 'wiredep', 'autoprefixer', 'express:dev', 'wait', 'open', 'watch' ]); }); grunt.registerTask('server', function () { grunt.log.warn('The `server` task has been deprecated. Use `grunt serve` to start a server.'); grunt.task.run(['serve']); }); grunt.registerTask('test', function(target) { if (target === 'server') { return grunt.task.run([ 'env:all', 'env:test', 'mochaTest' ]); } else if (target === 'client') { return grunt.task.run([ 'clean:server', 'env:all', 'injector:sass', 'concurrent:test', 'injector', 'autoprefixer', 'karma' ]); } else if (target === 'e2e') { return grunt.task.run([ 'clean:server', 'env:all', 'env:test', 'injector:sass', 'concurrent:test', 'injector', 'wiredep', 'autoprefixer', 'express:dev', 'protractor' ]); } else grunt.task.run([ 'test:server', 'test:client' ]); }); grunt.registerTask('build', [ 'clean:dist', 'injector:sass', 'concurrent:dist', 'injector', 'wiredep', 'useminPrepare', 'autoprefixer', 'ngtemplates', 'concat', 'ngAnnotate', 'copy:dist', 'cdnify', 'cssmin', 'uglify', 'rev', 'usemin' ]); grunt.registerTask('default', [ 'newer:jshint', 'test', 'build' ]); }; //2016年10月17日使用发电机角材料fullstack 0.1.2生成 "严格使用",; module.exports=函数(grunt){ var localConfig; 试一试{ localConfig=require('./server/config/local.env'); }捕获(e){ localConfig={}; } //在需要时自动加载grunt任务 要求(“jit-grunt”)(grunt{ express:“grunt express服务器”, useminPrepare:'grunt usemin', ngtemplates:“grunt角度模板”, cdnify:“咕噜咕噜谷歌cdn”, 量角器:“咕噜咕噜的量角器跑步者”, buildcontrol:“grunt生成控件” }); //任务所需的时间。可以帮助优化构建时间 要求(“时间咕噜”)(咕噜); //定义所有任务的配置 grunt.initConfig({ //项目设置 pkg:grunt.file.readJSON('package.json'), 约曼:{ //可配置路径 客户端:require('./bower.json').appPath | |“客户端”, dist:“dist” }, 快递:{ 选项:{ 端口:process.env.port | 9000 }, 开发人员:{ 选项:{ 脚本:“server/app.js”, 调试:正确 } }, 产品:{ 选项:{ 脚本:“dist/server/app.js” } } }, 开放式:{ 服务器:{ 网址:'http://localhost:' } }, 观察:{ injectJS:{ 档案:[ “/{app,components}/***.js”, “!/{app,components}/***.spec.js”, “!/{app,components}/***.mock.js”, “!/app/app.js”], 任务:['injector:scripts'] }, 注入CSS:{ 档案:[ “/{app,components}/***.css” ], 任务:['injector:css'] }, 莫切特:{ 文件:['server/***/*.spec.js'], 任务:['env:test','mochaTest'] }, jsTest:{ 档案:[ “/{app,components}/***.spec.js”, “/{app,components}/***.mock.js” ], 任务:['newer:jshint:all','karma'] }, 注射剂:{ 档案:[ '/{app,components}/***.{scss,sass}'], 任务:['injector:sass'] }, sass:{ 档案:[ '/{app,components}/***.{scss,sass}'], 任务:['sass','autoprefixer'] }, Grunfile:{ 文件:['grunfile.js'] }, 利弗雷罗德:{ 档案:[ “{.tmp,}/{app,components}/***.css”, “{.tmp,}/{app,components}/***.html”, “{.tmp,}/{app,components}/***.js”, “!{.tmp,}{app,components}/***.spec.js”, “!{.tmp,}/{app,components}/***.mock.js”, “/assets/images/{,*/*}{png,jpg,jpeg,gif,webp,svg}”, “/assets/icons/{,*/*}{png,jpg,jpeg,gif,webp,svg}”, “/assets/iconsets/{,*/*}{png,jpg,jpeg,gif,webp,svg}” ], 选项:{ 利弗雷罗德:没错 } }, 快递:{ 档案:[ 'server/***.{js,json}' ], 任务:['express:dev','wait'], 选项:{ 利弗雷罗德:没错, nospawn:true//如果没有此选项,则不会重新加载指定的express } } }, /确保代码风格达到标准,没有明显的错误。 jshint:{ 选项:{ jshintrc:'/.jshintrc', 记者:require('jshint-style') }, 服务器:{ 选项:{ jshintrc:'server/.jshintrc' }, src:[ 'server/***/.js', “!server/***.spec.js” ] }, 服务器测试:{ 选项:{ jshintrc:'server/.jshintrc spec' }, src:['server/***/*.spec.js'] }, 全部:[ “/{app,components}/***.js”, “!/{app,components}/***.spec.js”, “!/{app,components}/***.mock.js” ], 测试:{ src:[ “/{app,components}/***.spec.js”, “/{app,components}/***.mock.js” ] } }, //清空文件夹以重新开始 清洁:{ 地区:{ 档案:[{ 多特:没错, src:[ “.tmp”, '/*', “!/.git*”, “!/.openshift”, “!/Procfile” ] }] }, 服务器:'.tmp' }, //添加供应商前缀样式 自动刷新器:{ 选项:{ 浏览器:[“上一版本”] }, 地区:{ 档案:[{ 是的, cwd:“.tmp/”, src:'{,*/}*.css',, 目的地:'.tmp/' }] } }, //使用节点检查器进行调试 “节点检查器”:{ 自定义:{ 选项:{ “web主机”:“本地主机” } } }, //使用nodemon以调试模式运行服务器,并带有初始断点 诺德蒙:{ 调试:{ 脚本:“server/app.js”, 选项:{ 节点搜索:['--debug brk'] $mdDialog.show({ templateUrl: 'app/contacts/contact/contact.html', controller: 'ContactCtrl', controllerAs: 'cont', locals: {user: vm.currentUser, contact: angular.copy(contact)} })