2015-03-06 6 views
5

इम AngularJS कोड कर रहे हैं और एक अजीब त्रुटि है:AngularJS: ब्रैकेट विशेषता में लापता

"त्रुटि: [$ पार्स: वाक्य रचना] विन्यास त्रुटि: टोकन '{' अमान्य अभिव्यक्ति की स्तंभ 2 में कुंजी [{{ asset.sn}}] [{property.sn}} से शुरू]] http://errors.angularjs.org/1.3.11/ $ पार्स/सिंटैक्स? पी 0 =% 7 बी & पी 1 = अमान्य% 20key & पी 2 = 2 & पी 3 =% 7 बी% 7 बेससेट.sn% 7 डी% 7 दिन & p4 =% 7Basset.sn% 7 दिन% 7 दिन minErr/< @http://localhost:8000/app/vendor/angular/angular.js:63:12

इसका मतलब है और क्यों यह displyed है क्या?

+०१२३५१६४१०

एचटीएमएल कोड:

<table class="table" ng-table="tableParams" show-filter="false" ng-class="{loadingtable : loading}" ng-show="showResults"> 
       <tbody> 
        <tr ng-repeat="asset in assets"> 
         <td class="col-md-4" data-title="'Serial Number'" header-class="text-left" search-word-marker param="{{asset.sn}}"></td> 
         <td class="col-md-4" data-title="'Asset Name'" accesskey="" header-class="text-left" search-word-marker param="{{asset.asset_name}}"></td> 
         <td class="col-md-2" data-title="'Asset Type'" header-class="text-left">{{asset.asset_type}}</td> 
         <td class="col-md-2" data-title="'Tags'" header-class="text-left">{{asset.tags}}</td> 
         <td class="col-md-1"> 
          <div class="btn-group"> 
           <span> 
            <button type="button" class="btn btn-sm btn-primary" ng-click="viewAsset(asset.sn);">{{'VIEW' | translate}}</button> 
           </span> 
          </div> 
         </td> 
        </tr> 
       </tbody> 
      </table> 

निर्देशक कोड:

Application.Directives.directive('searchWordMarker', ['$log', '$rootScope', function ($log, $rootScope) { 
    return { 
     restrict: 'A', 
     scope: { 
      param: '=' 
     }, 
     //template: "{{myNewString}}", 
     //replace: false, 
     link: function (scope, el, attr) { 

      var myString = attr.param; 

      var searchWord = $rootScope.searchWord; 

      var regex = new RegExp(searchWord, "g"); 
      var myNewString = myString.replace(regex, "<B>" + searchWord + "</B>"); 


      el[0].innerHTML = myNewString; 


     } 
    } 
}]); 
+0

'खोज-शब्द-मार्कर परम =" asset.sn "' आप दे नहीं की जरूरत है {{}} –

+0

ऐसा नहीं है काम कर रहा है: यह "text.sn" को सामान्य पाठ के रूप में लेता है और यह टेक्स्ट के रूप में मर जाता है: asset.sn। –

उत्तर

10

आप क्या param में लिखा करने के लिए एक 2 तरह बंधन (param : "=") करने के लिए कोशिश कर रहे हैं, लेकिन यह नहीं है एक वस्तु या एक चर, यह एक अभिव्यक्ति है। या तो {{}} खो देते हैं या एक स्ट्रिंग के लिए हो सकता है के लिए बाध्य अपने scope.param बदलने के लिए:

scope: { 
    param: '@' 
}, 
+0

धन्यवाद यह काम करता है :)। मैं 2 तरीके बाध्यकारी करने में सक्षम नहीं था ... {{property.sn}} प्रतीत होता है (अस्थायी) चर। –

+1

@ पीके। 2 तरीके बाध्यकारी काम करते हैं जब आप किसी चर/ऑब्जेक्ट से जुड़ सकते हैं .. {{}} एक अभिव्यक्ति है और इसे बाध्य नहीं किया जा सकता है। {{asset.sn}} दिन के अंत में केवल एक स्ट्रिंग का मूल्यांकन करता है। –

+0

यह वही है जो मैं ढूंढ रहा था ... 3 घंटे के लिए, धन्यवाद @ ओमरीआहरन :) –

1
<table class="table" ng-table="tableParams" show-filter="false" ng-class="{loadingtable : loading}" ng-show="showResults"> 
      <tbody> 
       <tr ng-repeat="asset in assets"> 
        <td class="col-md-4" data-title="'Serial Number'" header-class="text-left" search-word-marker param="asset.sn"></td> 
        <td class="col-md-4" data-title="'Asset Name'" accesskey="" header-class="text-left" search-word-marker param="asset.asset_name"></td> 
        <td class="col-md-2" data-title="'Asset Type'" header-class="text-left">{{asset.asset_type}}</td> 
        <td class="col-md-2" data-title="'Tags'" header-class="text-left">{{asset.tags}}</td> 
        <td class="col-md-1"> 
         <div class="btn-group"> 
          <span> 
           <button type="button" class="btn btn-sm btn-primary" ng-click="viewAsset(asset.sn);">{{'VIEW' | translate}}</button> 
          </span> 
         </div> 
        </td> 
       </tr> 
      </tbody> 
     </table> 
संबंधित मुद्दे