2016-03-23 3 views
2
.controller('newGoalCtrl', function($scope, $ionicPopup) { 
    $scope.addNewGoal = function() { 
     alert($scope.goaltitle); 
    }; 
}); 

<ion-pane view-title="goal"> 
    <ion-header-bar class="bar-positive"> 
     <div class="buttons"> 
      <a nav-transition="android" class="button button-icon icon ion-arrow-left-b" ng-click="" href="#/index"></a> 
     </div> 
     <h1 class="title">Add New Goal</h1> 
    </ion-header-bar> 


    <ion-content class="padding" scroll="false" > 
     <div class="list"> 
      <label class="item item-input"> 
       <input type="text" placeholder="#Title" ng-model="goaltitle"> 
      </label> 
      <label class="item item-input"> 
       <span class="hashtag-title">#{{hashtagname}}</span> 
      </label> 
      <label class="item item-input"> 
       <textarea placeholder="Goal"></textarea> 
      </label> 
     </div> 
    </ion-content> 


    <ion-tabs class="tabs-icon-top tabs-color-active-positive"> 
     <button class="button button-positive button-bar no-round-corner" ng-click="addNewGoal()">Add Goal</button> 
    </ion-tabs> 
</ion-pane> 

Это мой код ... Я не знаю, как объяснить, но это всегда говорят, что не определено, когда я ввожу что-то на поле ...

, но $ scope.goaltitle = «что-то» работает над .controller(); ...

ответ

8

Короткий ответ

Основной причиной этого вопроса, ion-content действительно создает образцово унаследованный ребенка сферу, поэтому goaltitle (примитивный тип) области видимости контроллера, отличается от goaltitle вы используете на ng-model

В идеале практика заключается в соблюдении dot rule при определении модели просмотра. Так что правило прототипального наследования будет сопровождаться иерархией областей.

Вы должны определить объект, а затем назначьте в нем все свойство ng-model.

Контроллер

.controller('newGoalCtrl', function($scope, $ionicPopup) { 
    $scope.model = {}; 
    $scope.addNewGoal = function() { 
     alert($scope.model.goaltitle); 
    }; 
}); 

Тогда есть goalTitle, Goal и т.д. свойство в нем.

Markup

<ion-content class="padding" scroll="false" > 
    <div class="list"> 
     <label class="item item-input"> 
      <input type="text" placeholder="#Title" ng-model="model.goaltitle"> 
     </label> 
     <label class="item item-input"> 
      <span class="hashtag-title">#{{hashtagname}}</span> 
     </label> 
     <label class="item item-input"> 
      <textarea placeholder="Goal" ng-model="model.Goal"></textarea> 
     </label> 
    </div> 
</ion-content> 

Я не хочу, чтобы переписать все объяснение снова, так что здесь я ссылки similar answer, где я покрыл всю подробную информацию.

+0

Это работает ... но с некоторыми изменениями ... предупреждение ($ scope.model.goaltitle); Большое спасибо ...: D –

+0

@MansonMamaril очевидно, что это должно быть только .. Рад помочь вам .. Спасибо :) –

0

Для HTML

<input type="text" placeholder="#Title" ng-model="foo.goaltitle"> 

JS:

$scope.foo = {{ 
    goaltitle : '' 
}} 
Смежные вопросы