2016-02-02 3 views
1

Это мой HTML-файл. Когда я бегу страницу HTML он показывает ошибку «Не удается прочитать свойство„разбить“неопределенных»ТипError: Не удается прочитать свойство «split» undefined

<!DOCTYPE html> 
     <html> 
      <head> 
       <script src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.3.3/angular.min.js"></script> 

       <script> 
        var appModule=angular.module('appModule',[]); 
        appModule.filter('removeDashes',function(){ 
         return function(text){ 
          if(text!==undefined){ 
           return text.split('-').join(' '); 
          } 
         } 
        }); 
        appModule.controller('someCTRL',function($scope){ 
        }); 
       </script> 
      </head> 

      <body ng-app="appModule" ng-controller="someCTRL"> 
      <input type="text" model="someDashedText"> 
      <p> 
       {{someDashedText | removeDashes}} 
      </p> 
     </body> 
    </html> 
+3

первым вверх! .. изменение 'модель = "someDashedText"' в 'нг-модели = "someDashedText"' – Minato

+0

вы пытались console.log (текст) перед вызовом условной? отладка 101 - использовать консоль –

+0

это должно быть, если (text! = undefined) { return text.split ('-'). join (''); } –

ответ

1
if(text!==undefined){ 
          return text.split('-').join(' '); 
         } 

На мой взгляд выше условия должны быть заменены ниже код

if(text){ 
          return text.split('-').join(' '); 
         } 

Это условие проверяет все, то есть определенные, а не пустые, а не пустые строки.

Надеюсь, это поможет.

+0

Это сработало ... tysm :) – Abhishek

+1

Это хорошо :). Если он решил вашу проблему, пожалуйста, отметьте это как правильный ответ. –

0

Вам не хватает ng в <input type="text" model="someDashedText"> =><input type="text" ng-model="someDashedText">.

Не уверен, что «строго не равно» !== оператор необходимо здесь ..., вы можете просто проверить, если что-либо там if(text)

Здесь работает Plunker.

0

Я сделал небольшое изменение кода и создал отдельный модуль для фильтра и использовал его в 'appModule'.

Вы должны использовать «ng-model» на входе.

Вот рабочий сценарий.

<!DOCTYPE html> 
 
     <html> 
 
      <head> 
 
       <script src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.3.3/angular.min.js"></script> 
 
     <script> 
 
        angular.module('dash',[]).filter('removeDashes',function(){ 
 
         return function(text){ 
 
          if(text!==undefined){ 
 
           return text.split('-').join(' '); 
 
          } 
 
         } 
 
        }); 
 
angular.module('appModule', ['dash']).controller('someCTRL', function($scope){ 
 
        }); 
 
       </script> 
 
      </head> 
 

 
      <body ng-app="appModule" ng-controller="someCTRL"> 
 
      <input type="text" ng-model="someDashedText"> 
 
      <p> 
 
       {{someDashedText|removeDashes}} 
 
      </p> 
 
     </body> 
 
    </html>

Смежные вопросы