2016-11-11 26 views
0

我有工作離子代碼以允許用戶輸入列表,我嘗試將列表分解到組件中以供重用。但在運行時,我得到了js第4行中的錯誤undefined is not a function。這怎麼解決?Angular'undefined不是定義組件的函數

/*jshint multistr: true */   
var app = angular.module('ionicApp', ['ionic']); 

app.component('inputlist',{ 
    bindings: {label: '@'}, 
    template: '\ 
     <div class="list">\ 
      <div class="item item-button-right">\ 
       <ion-label floating>Enter {{$ctrl.label}} below then press +</ion-label>\ 
       <input type="text" ng-model="nameinput.name"></input>\ 
       <button class="button button-assertive" ng-click="addItem()">+</button>\ 
      </div>\ 
      <div class="item item-button-right" ng-repeat="item in items track by $index">\ 
       <ion-label>{{item.name}}</ion-label>\ 
       <button class="button button-positive" ng-click="items.splice($index,1)">-</button>\ 
      </div>\ 
     </div>', 
    controller: function() { 
     this.items = []; 
     this.nameinput = {name:''}; 
     this.addItem = function(){ 
      var name = this.nameinput.name.trim(); 
      if (name!=="") 
      { 
       this.items.push({name:name}); 
       this.nameinput={name:""}; 
      } 
     }; 
    }  
}); 

HTML

<!DOCTYPE html> 
<html ng-app="ionicApp"> 
<head> 

    <meta charset="utf-8"> 
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width"> 

    <title>Ionic-AngularJS-Cordova</title> 

    <!-- Ionic framework - replace the CDN links with local files and build -->  
    <link href="lib/ionicframework/ionic.min.css" rel="stylesheet"> 
    <script src="lib/ionicframework/ionic.bundle.min.js"></script> 

    <script src="js/app.js"></script> 

    <script src="cordova.js"></script> 

</head> 


    <body> 

    <ion-content> 

     <inputlist label="foo"></inputlist> 

    </ion-content> 

</body> 
</html> 
+0

您使用的是哪個版本的Angular? – Mickers

+0

看起來像1.5.x –

+0

實際上它是與英特爾XPM捆綁在一起的Ionic版本,通過'ionic.bundle.js'的頭部判斷是Ionic v1.0.0-beta.1。我不確定在底下使用哪個版本的Angular,以及如何找出? –

回答

2

您剛纔說您正在使用離子V1.0.0-β1在你的項目,我相信這個版本的離子束自帶低於1.3角版本。

另一方面,組件是角度爲1.5及以上的新功能。這解釋了爲什麼你得到的功能在第4行app.component() method中未定義。

我建議您採取以下兩種方法之一來解決您的問題:
1)將組件轉換爲指令。
2)將離​​子升級到支持角度的v1.3.2(最新版本)1.5