$未定义 - jquery角度混合

时间:2014-12-30 11:13:55

标签: angularjs jshint

之前我用jQuery开发了所有项目,但最近开始使用Angular。 我用Yeoman生成器创建了一个Angular样板,并从中扩展了我的代码。

我将jQuery代码的ajax表单翻译成以下Angular控制器。

'use strict';


angular.module('MyApp')
.controller('ShareformCtrl', function ($scope, $http) {
// create a blank object to hold our form information
// $scope will allow this to pass between controller and view
$scope.formData = {};

// process the form
$scope.processForm = function() {
    $http({
        method : 'POST',
        url : 'php/share_handling.php',
        data : $.param($scope.formData), // pass in data as strings
        headers : { 'Content-Type': 'application/x-www-form-urlencoded' } // set the headers so angular passing info as form data (not request payload)
    })
    .success(function(data) {
        console.log(data);

        if (!data.success) {
            // if not successful, bind errors to error variables
            $scope.errorName = data.errors.name;
            $scope.errorSuperhero = data.errors.superheroAlias;
        } else {
            // if successful, bind success message to message
            $scope.message = data.message;
        }
    });
};
});

但jshint将在$.param

上失败

在我的索引中,我实现了如下角度和jquery:

<script src="bower_components/jquery/dist/jquery.js"></script>
<script src="bower_components/angular/angular.js"></script>

所以Angular应该可以访问$,但它没有或其他任何事情发生在这里。

2 个答案:

答案 0 :(得分:6)

告诉JSHint不要担心$使用

在根项目目录中创建.jshintrc
{
  "globals": {
     "$": false
  }
}

Docs

答案 1 :(得分:1)

在代码顶部添加以下注释以绕过jshint检查

/* global $ */