首页 文章

ng-show不能基于AngularJs版本工作

提问于
浏览
2

这里我创建了自定义指令,用于显示和隐藏json数据中的特定字段,这里我的问题是角度版本,在低版本中工作(https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js),但高版本不支持(https://code.angularjs.org/1.3.15/angular.js

请查看以下链接http://plnkr.co/edit/h3MrWQjopbqzYa0Y5pOT?p=preview

var app = angular.module('testApp',[]);

app.directive('telBasictext1', ['$http', 'telngshowservice', function($http, telngshowservice) {
  return {
    restrict: 'AEC',
    require: 'ngModel',
    scope: {
      ngModel: '=',
      placeHold: '@',
      checkId: '@',
      className: '@',
      ngmaxLength: '@',
      ngminLength: '@',
      lblvalue: '@',
      textboxSize: '@',
      lblSize: '@',
      validate: '@',
      ngShow: '@',
      textboxtype: '@',
      getString: '@',
      position: '@',
      labelPosition: '@',
      textboxPosition: '@',
      canShow: '@',
      showorhide: '@',
    },
    template: '<div   id="{{ checkId }}" class="form-group" ng-show="true"  > ' +
      '<label size="lblSize"  class="col-sm-{{ labelPosition }} control-label" id="textboxchanges">   Test </label>' +
      '<div class="col-sm-{{ textboxPosition }}"> <input type="{{ textboxtype }}" ng-model="ngModel" placeholder="{{ placeHold }}"  id="{{checkId}}"   class="{{className}}"  minlength="{{ ngminLength }}"  maxlength="{{ ngmaxLength }}"  size="{{ textboxSize }}"           ng-required="{{ validate }}" ></div></div>',

    link: function(scope, iElement, iAttrs, ngModelController) {



      var ngshow = iAttrs.canShow;
      var ngsplitValues = ngshow.split(",");
      var nglanguage = ngsplitValues[0]; // Language EN or Fr
      var nglabelName = ngsplitValues[1]; // Label Name
      var ngmoduleName = ngsplitValues[2]; // Module Name (global or local)

      telngshowservice.getdata(ngmoduleName).success(function(data) {

        scope.showorhide = data[nglabelName];
        console.log(scope.showorhide)


      })


    }
  };
}]);



app.factory('telngshowservice', ['$http', function($http) {
  var dataFactory = {};
  var lang = window.localStorage.language;
  dataFactory.getdata = function(moduleName) {

    if (moduleName == 'common') {

      return $http.get(labeli18nPath + '/translation_' + lang + '.json');
    } else {


      return $http.get('OPlayout.json');
    }
  };
  return dataFactory;
}]);

1 回答

  • 2

    这是由于版本 1.3.0-beta.14$parse 服务的更改中断:

    核心:由于bdfc9c02,值'f','0','false','no','n','[]'不再被视为麻痹 . 现在,表达式解析器只将JavaScript假值视为伪造;其中有六个:false,null,undefined,NaN,0和“” .

    使用布尔值而不是字符串:

    {
        "pSearchPatient": false,
        "pAddressNo" : true,
        "pBuilding": true
    }
    

相关问题