Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.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 棱角;“未知提供者”;在Yeoman应用程序中使用Grunt Build缩小后出错_Javascript_Angularjs_Gruntjs_Yeoman_Uglifyjs - Fatal编程技术网

Javascript 棱角;“未知提供者”;在Yeoman应用程序中使用Grunt Build缩小后出错

Javascript 棱角;“未知提供者”;在Yeoman应用程序中使用Grunt Build缩小后出错,javascript,angularjs,gruntjs,yeoman,uglifyjs,Javascript,Angularjs,Gruntjs,Yeoman,Uglifyjs,我在使用Coffee和Slim的Yeoman生成的Angular应用程序上遇到了grunt build问题,所有库都是最新的。(该应用程序是几天前用最新的生成器生成的。) grunt构建和grunt服务器最初都运行良好。但是在使用grunt服务器进行了几天的开发之后,我发现grunt构建已经完全停止工作 我解决了几个不同的问题。最大的一个问题是,我不得不完全放弃Slim作为索引文件,而使用直接的HTML,因为grunt build在发布到/dist时莫名其妙地删除了80%的索引文件 不幸的是,在

我在使用Coffee和Slim的Yeoman生成的Angular应用程序上遇到了
grunt build
问题,所有库都是最新的。(该应用程序是几天前用最新的生成器生成的。)

grunt构建
grunt服务器
最初都运行良好。但是在使用
grunt服务器
进行了几天的开发之后,我发现
grunt构建
已经完全停止工作

我解决了几个不同的问题。最大的一个问题是,我不得不完全放弃Slim作为索引文件,而使用直接的HTML,因为
grunt build
在发布到
/dist
时莫名其妙地删除了80%的索引文件

不幸的是,在我几乎解决了所有问题之后,我开始在我的一个角度指令中出现这个错误:


未捕获错误:未知提供程序:aProvider这听起来像是Angular依赖依赖依赖项注入参数名称的常见问题。在传递依赖项时,请确保将依赖项名称作为字符串包含,以便Angular知道缩小后要注入什么(因为在缩小过程中不会更改字符串值)


从Angular docs:

这里可能重复的问题是ngMin(发电机Angular使用的)不能正确地保护
控制器=($scope)
部件,因此您必须手动保护该部件。对于基于
myModule
ngmin的东西,应该可以正常工作。绝对正确。我在发帖几分钟后意识到了我的错误,但直到现在才有时间回来纠正。我已经尝试过注入$scope,但我刚刚意识到的语法犯了一个愚蠢的错误。在控制器定义之后添加此代码当然解决了它:controller。$inject=['$scope']除了这个错误,我认为在如何转换Slim索引文件方面存在问题;i、 例如,它在这个过程中丢失了80%的代码。我会单独发布,因为我确实认为那里可能有一个bug。再次感谢你指出注射的错误。这是帮助我的答案,除了在SO中的其他答案。来自angular doc的链接也很重要。我仍然有缩小的问题。我已经尝试在我的指令中应用相同的方法。在link函数中,我添加了相同的语法,并将函数和依赖项包装在一个方括号中,但这破坏了指令,甚至没有返回错误。相同的语法可以应用于指令中的链接函数吗?链接函数不通过依赖项注入接收参数。它的参数是:
函数链接(作用域、元素、属性、控制器、transcludeFn)
myModule.directive "editable", ->

  controller = ($scope) ->
    $scope.showInput = false

    $scope.saveContent = -> 
      $scope.toggleContent()
      $scope.save()

  linker = (scope, element, attrs) ->    
    scope.toggleContent = -> 
      scope.showInput = not scope.showInput
      setTimeout((-> element.find('input').focus()), 100)

  return DDO = 
    restrict: 'E'
    controller: controller
    link: linker
    templateUrl: "template/editable.html"
    scope:
      editableType: "@"
      text: "="
      placeholder: "@"
      save: "&"
myApp.controller('myCtrl', ['$scope', '$http', function($scope, $http) {

}])