2017-01-06 2 views
1

Это мой взглядКак разбить строку в Angular.js?

<div class="container" ng-controller="LunchCheckController"> 
    <h1>Lunch Checker</h1> 
     <div class="form-group" > 
      <input id="lunch-menu" type="text" 
       placeholder="list comma separated dishes you usually have for lunch" 
       class="form-control" ng-model="input"> 
     </div> 
     <div class="form-group"> 

     <button class="btn btn-default" ng-click="LunchCheckController()"> 
     Check If Too Much 
     </button> 
    </div> 
    <div class="form-group message" id="result"> 
     <!-- Your message can go here. --> 
     {{stack()}} 
    </div> 
</div> 

Это мой JavaScript

(function() { 
    'use strict'; 

    angular.module('LunchCheck', []) 
      .controller('LunchCheckController', LunchCheckController); 

    LunchCheckController.$inject = ['$scope']; 

    function LunchCheckController ($scope) { 
     $scope.input = ""; //Taking input from the user 
     $scope.stack = function(input) { 
      var array = input.split(','); 
      if (array.length < 3) { 
       return "Enjoy"; 
      } else { 
       return "You gotta Stop boy!"; 
      } // Splitting the input 
     }; 
    } 
})(); 

Я своего рода новым для Angular.js. Моя цель - получить строку и разбить ее. После расщепления я хочу удовлетворять ситуации, когда «Если количество элементов больше 3, распечатайте удовольствие», иначе «Что-нибудь еще».

+1

Я переформатировал ваш код, чтобы выглядеть визуально правильно, и кажется, что у вас либо есть опечатка, либо функция, назначенная '$ scope.stack', неверна. Если у вас есть '' '' '' '' '' '' 'после' return', то он никогда не будет выполнен. – krillgar

+0

@krillgar Подождите. Позвольте мне переделать. Проверь сейчас. –

+0

Plunker пожалуйста. –

ответ

2

Должно быть так:

<div class="container" ng-controller="LunchCheckController"> 
    <h1>Lunch Checker</h1> 
     <div class="form-group" > 
      <input id="lunch-menu" type="text" 
       placeholder="list comma separated dishes you usually have for lunch" 
       class="form-control" ng-model="input"> 
     </div> 
     <div class="form-group"> 

     <button class="btn btn-default" ng-click="stack()"> 
     Check If Too Much 
     </button> 
    </div> 
    <div class="form-group message" id="result"> 
     <!-- Your message can go here. --> 
     {{message}} 
    </div> 
</div> 

код JavaScript

(function() { 
    'use strict'; 

    angular.module('LunchCheck', []) 
      .controller('LunchCheckController', LunchCheckController); 

    LunchCheckController.$inject = ['$scope']; 

    function LunchCheckController ($scope) { 
     $scope.input = ""; 
     $scope.message = ""; 
     $scope.stack = function() { 
      // already can access $scope.input 
      // dont need to pass to stack() 
      var array = $scope.input.split(','); 

      // set $scope.message 
      // instead of returning String 
      if (array.length < 3) { 
       $scope.message = "Enjoy"; 
      } else { 
       $scope.message = "You gotta Stop boy!"; 
      } 
     }; 
    } 
})(); 

Подумайте о том, как потоки данных:

  • привязки текстового поля для ввода
  • нажмите Функция кнопки запуска
  • проверка количество слов
  • набор сообщений

обучение Angular.js

Первое место, чтобы начать это Угловые учебники на их сайте.

https://docs.angularjs.org/tutorial

Я не нашел, что полезно при первом, но они являются лучшим местом для начала.

Это видео является обязательным, если ваш новый угловой, от 0 до героя в течение нескольких часов:

Введение в Angular.js в 50 примерах

https://www.youtube.com/watch?v=TRrL5j3MIvo

Тогда я советую наблюдая за несколькими видеороликами на YouTube, Misko Hevery, он придумал угловое решение в google и объясняет это очень хорошо.

Этот плейлист - хорошее место для начала.

https://www.youtube.com/watch?v=k4qVkWh1EAo&list=PL53194065BA276ACA

Он объясняет лучшие черты, а также, где люди часто застревают.

1

Вам необходимо пройти input переменную в функции стека в представлении как этот {{stack(input)}}

Или использовать var array = $scope.input.split(','); вместо var array = input.split(',');

+0

Спасибо за это! Но мне нужен результат при нажатии кнопки, и я получаю его, не нажимая его. –

+0

После нажатия кнопки вы можете обновить некоторую переменную. И используйте эту переменную в представлении. – NechiK

+0

Спасибо, человек! Это действительно помогло мне понять фундаментальный фундаментальный характер. –

1
var str = "How are you doing today?"; 
var res = str.split(" "); 

Это основная функция разделения Javascript.

С угловым, вам нужно сделать поле ввода ng-model, скажем str1.

Все, что вам нужно сделать, это

var res = $scope.str1.split(" "); 

теперь его просто .. проверить res.length и вы получите ваши вещи сделано.

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