0

angular.min.js で次のエラーが報告されています

0x800a1391 - JavaScript ランタイム エラー:「エラー」は定義されていません

次のコードを使用します。

Javaスクリプト:

function Sucess() 
{
    //close
}

function Save() 
{
    var e = document.getElementById('FormDiv');
    scope = angular.element(e).scope();
    scope.Apply(Sucess)
}

私のAngularスコープ機能:

function RolesCtrl($scope, $http, $location) 
{
    $scope.Apply = function (CallBackSucess) {

    var userId = getQSP('uid', decode(document.URL));
    $http({
    method: 'POST', url: 'MultiRole.aspx/Apply',
    data: {}
    }).
    success(function (data, status, headers, config) {
        // this callback will be called asynchronously
        CallBackSucess();
        $scope.f = data.d;
        }).
    error(function (data, status, headers, config) {
    // called asynchronously if an error occurs
    // or server returns response with an error status.
    $scope.name = 'error';
    })
    }
}

CallBackSucess()エラーをスローする呼び出しが行われるまで、すべてが正常に機能しているようです。

0x800a1391 - JavaScript ランタイム エラー:「エラー」は定義されていません

4

1 に答える 1

0

CallBackSucess引数はメソッドに渡されます.Apply()。メソッドには渡されません.success()- それらは別々のスコープを持つチェーンされたメソッドです。したがって、.success()コールバック関数でCallbackSucess()は、呼び出そうとすると定義されていないため、エラーが発生します。

また、本当にスペルをSucess間違えるつもりですか?

参考までに、実際に何が起こっているかを確認するために、コードを次のようにフォーマットする必要がありました。

function RolesCtrl($scope, $http, $location) {
    $scope.Apply = function (CallBackSucess) {
        var userId = getQSP('uid', decode(document.URL));
        $http({
            method: 'POST', 
            url: 'MultiRole.aspx/Apply',
            data: {}
        }).success(function (data, status, headers, config) {
            // this callback will be called asynchronously
            CallBackSucess();
            $scope.f = data.d;
        }).error(function (data, status, headers, config) {
            // called asynchronously if an error occurs
            // or server returns response with an error status.
            $scope.name = 'error';
        })
    }
}
于 2013-08-13T05:35:52.143 に答える