Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.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 为什么angularjs指令继承范围但不';是否不更改范围变量? (函数(){ “严格使用” var pagesize=5; var memberManager=angular.module('memberManager',['mydirective'],函数($interpolateProvider){ $interpolateProvider.startSymbol(“”); }) memberManager.constant('apiUri'{ getMembers:“/membermanage/get”, 费用:'/membermanage/charge', exchange:“/MemberManager/exchange” }); 工厂('managerService',函数($http,apiUri){ 返回{ getMembers:函数(数据){ 返回$http.get(apiUri.getMembers,{params:data}); }, 费用:功能(数据){ 返回$http.post(apiUri.charge,data); }, 交换:功能(数据){ 返回$http.post(apuri.exchange,data); } } }); memberManager.directive('modalWin',function(){ 返回{ 限制:“A”, 链接:功能(范围、要素、属性){ var modalWinId=attrs.targetid; var clickHandler=函数(){ var index=$(elem.attr('index'); 作用域:$apply(函数(){ scope.itemIndex=parseInt(索引); scope.chargeModel.index=parseInt(索引); }); $('#'+modalWinId).modal(); 作用域:$on('http:cash',函数(){ $('#'+modalWinId).modal('hide'); }); 作用域:$on('http:exchange',函数(){ $('#'+modalWinId).modal('hide'); }); }; $(elem).bind('click',clickHandler); } } }) 控制器('manCtrl',函数($scope,managerService,$rootScope,managerHelper){ $scope.isLoadingData=true; $scope.chargeModel={ 索引:0, 现金数量:0, 现金商店:'', 现金或其他物品:'' }; //要编辑哪个项目? $scope.itemIndex=0; $scope.test={ 索引:0 }; $scope.exchangeModel={ 交易所编号:0, 交换方式:1,//直接消费 exchange存储区:“”, exchange\u通行证:“” } $scope.loader={ 交换:错, 现金:假 }; $scope.exchange=函数(){ 警报($scope.itemIndex); $scope.loader.exchange=true; 风险值数据={ exchange\u编号:$scope.exchangeModel.exchange\u编号, exchange\u微信\u id:$scope.model[$scope.itemIndex].wc\u openid, exchange\u类型:$scope.exchangeModel.exchange\u类型 }; 控制台日志(数据); managerService.exchange(数据).success(函数(数据){ $scope.loader.exchange=false; $rootScope.$broadcast('http:exchange'); $scope.getData($scope.currentPageIndex); }) };_Javascript_Angularjs - Fatal编程技术网

Javascript 为什么angularjs指令继承范围但不';是否不更改范围变量? (函数(){ “严格使用” var pagesize=5; var memberManager=angular.module('memberManager',['mydirective'],函数($interpolateProvider){ $interpolateProvider.startSymbol(“”); }) memberManager.constant('apiUri'{ getMembers:“/membermanage/get”, 费用:'/membermanage/charge', exchange:“/MemberManager/exchange” }); 工厂('managerService',函数($http,apiUri){ 返回{ getMembers:函数(数据){ 返回$http.get(apiUri.getMembers,{params:data}); }, 费用:功能(数据){ 返回$http.post(apiUri.charge,data); }, 交换:功能(数据){ 返回$http.post(apuri.exchange,data); } } }); memberManager.directive('modalWin',function(){ 返回{ 限制:“A”, 链接:功能(范围、要素、属性){ var modalWinId=attrs.targetid; var clickHandler=函数(){ var index=$(elem.attr('index'); 作用域:$apply(函数(){ scope.itemIndex=parseInt(索引); scope.chargeModel.index=parseInt(索引); }); $('#'+modalWinId).modal(); 作用域:$on('http:cash',函数(){ $('#'+modalWinId).modal('hide'); }); 作用域:$on('http:exchange',函数(){ $('#'+modalWinId).modal('hide'); }); }; $(elem).bind('click',clickHandler); } } }) 控制器('manCtrl',函数($scope,managerService,$rootScope,managerHelper){ $scope.isLoadingData=true; $scope.chargeModel={ 索引:0, 现金数量:0, 现金商店:'', 现金或其他物品:'' }; //要编辑哪个项目? $scope.itemIndex=0; $scope.test={ 索引:0 }; $scope.exchangeModel={ 交易所编号:0, 交换方式:1,//直接消费 exchange存储区:“”, exchange\u通行证:“” } $scope.loader={ 交换:错, 现金:假 }; $scope.exchange=函数(){ 警报($scope.itemIndex); $scope.loader.exchange=true; 风险值数据={ exchange\u编号:$scope.exchangeModel.exchange\u编号, exchange\u微信\u id:$scope.model[$scope.itemIndex].wc\u openid, exchange\u类型:$scope.exchangeModel.exchange\u类型 }; 控制台日志(数据); managerService.exchange(数据).success(函数(数据){ $scope.loader.exchange=false; $rootScope.$broadcast('http:exchange'); $scope.getData($scope.currentPageIndex); }) };

Javascript 为什么angularjs指令继承范围但不';是否不更改范围变量? (函数(){ “严格使用” var pagesize=5; var memberManager=angular.module('memberManager',['mydirective'],函数($interpolateProvider){ $interpolateProvider.startSymbol(“”); }) memberManager.constant('apiUri'{ getMembers:“/membermanage/get”, 费用:'/membermanage/charge', exchange:“/MemberManager/exchange” }); 工厂('managerService',函数($http,apiUri){ 返回{ getMembers:函数(数据){ 返回$http.get(apiUri.getMembers,{params:data}); }, 费用:功能(数据){ 返回$http.post(apiUri.charge,data); }, 交换:功能(数据){ 返回$http.post(apuri.exchange,data); } } }); memberManager.directive('modalWin',function(){ 返回{ 限制:“A”, 链接:功能(范围、要素、属性){ var modalWinId=attrs.targetid; var clickHandler=函数(){ var index=$(elem.attr('index'); 作用域:$apply(函数(){ scope.itemIndex=parseInt(索引); scope.chargeModel.index=parseInt(索引); }); $('#'+modalWinId).modal(); 作用域:$on('http:cash',函数(){ $('#'+modalWinId).modal('hide'); }); 作用域:$on('http:exchange',函数(){ $('#'+modalWinId).modal('hide'); }); }; $(elem).bind('click',clickHandler); } } }) 控制器('manCtrl',函数($scope,managerService,$rootScope,managerHelper){ $scope.isLoadingData=true; $scope.chargeModel={ 索引:0, 现金数量:0, 现金商店:'', 现金或其他物品:'' }; //要编辑哪个项目? $scope.itemIndex=0; $scope.test={ 索引:0 }; $scope.exchangeModel={ 交易所编号:0, 交换方式:1,//直接消费 exchange存储区:“”, exchange\u通行证:“” } $scope.loader={ 交换:错, 现金:假 }; $scope.exchange=函数(){ 警报($scope.itemIndex); $scope.loader.exchange=true; 风险值数据={ exchange\u编号:$scope.exchangeModel.exchange\u编号, exchange\u微信\u id:$scope.model[$scope.itemIndex].wc\u openid, exchange\u类型:$scope.exchangeModel.exchange\u类型 }; 控制台日志(数据); managerService.exchange(数据).success(函数(数据){ $scope.loader.exchange=false; $rootScope.$broadcast('http:exchange'); $scope.getData($scope.currentPageIndex); }) };,javascript,angularjs,Javascript,Angularjs,})();单击事件回调在Angular world外部执行。您需要使用$apply: (function () { 'use strict' var pagesize = 5; var memberManager = angular.module('memberManager',['mydirective'],function ($interpolateProvider) { $interpolateProvider.startSymbol('<%'); $interpo

})();

单击事件回调在Angular world外部执行。您需要使用
$apply

(function () {
'use strict'

var pagesize = 5;
var memberManager = angular.module('memberManager',['mydirective'],function ($interpolateProvider) {
    $interpolateProvider.startSymbol('<%');
    $interpolateProvider.endSymbol('%>');
})

memberManager.constant('apiUri', {
    getMembers: '/membermanage/get',
    charge: '/membermanage/charge',
    exchange: '/membermanage/exchange'
});
memberManager.factory('managerService',function ($http,apiUri) {
    return {
        getMembers: function (data) {
            return $http.get(apiUri.getMembers,{ params: data });
        },
        charge: function (data) {
            return $http.post(apiUri.charge,data);
        },
        exchange: function (data) {
            return $http.post(apiUri.exchange,data);
        }
    }
});



memberManager.directive('modalWin',function () {
    return {
        restrict: 'A',
        link: function (scope,elem,attrs) {
            var modalWinId = attrs.targetid;
            var clickHandler = function () {
                var index = $(elem).attr('index');
                scope.$apply(function () {
                    scope.itemIndex = parseInt(index);
                    scope.chargeModel.index = parseInt(index);
                });
                $('#' + modalWinId).modal();    
                scope.$on('http:cash',function () {
                    $('#' + modalWinId).modal('hide');
                });
                scope.$on('http:exchange',function () {
                    $('#' + modalWinId).modal('hide');
                });
            };
            $(elem).bind('click',clickHandler);
        }
    }
})

memberManager.controller('manCtrl',function ($scope,managerService,$rootScope,managerHelper) {

    $scope.isLoadingData = true;

    $scope.chargeModel = {
        index: 0,
        cash_num: 0,
        cash_store: '',
        cash_stuff: ''
    };

    // which item to be edit?
    $scope.itemIndex = 0;
    $scope.test = {
        index: 0
    };
    $scope.exchangeModel = {
        exchange_number: 0,
        exchange_way: 1,// 直接消费
        exchange_store: '',
        exchange_pass: ''
    }

    $scope.loader = {
        exchange: false,
        cash: false
    };


    $scope.exchange = function () {
        alert($scope.itemIndex);
        $scope.loader.exchange = true;
        var data = {
            exchange_number: $scope.exchangeModel.exchange_number,
            exchange_wechat_id: $scope.model[$scope.itemIndex].wc_openid,
            exchange_type: $scope.exchangeModel.exchange_type
        };

        console.log(data);
        managerService.exchange(data).success(function (data) {
            $scope.loader.exchange = false;
            $rootScope.$broadcast('http:exchange');
            $scope.getData($scope.currentPageIndex);
        })
    };

试试这个:

demo.directive('testD',function(){
    return {
        restrict: 'A',
        link: function(scope,elem,attr){
            $(elem).click(function(){
                scope.$apply(function(){
                   scope.val = 5;
                });
            });
        }
    }
});

但是如果“val”是“scope.model={val:0};那么works@Daniel.Woo您的指令语法无效。请查看我的更新。我已经更新了代码,请注意“$scope.itemIndex”…它没有更改,非常感谢“$scope.itemIndex”“在控制器中,我在指令中对其进行了更改,很抱歉您花时间发现这一点..因为我很担心..thx Again您的意思是您发现了问题?您的意思是双向绑定?但我没有定义隔离作用域,因此不需要定义对$scope的引用,对吗?
var demo = angular('demo',[]);
demo.directive('testD',function(){
   restrict: 'A',
   scope: {
      'val': '=' // here the fix
   },
   link: function(scope,elem,attr){
       $(elem).click(function(){
           scope.val = 5;
       });

   }
});


demo.controller('testCtrl',function($scope){
  $scope.val = 0;

});