2016-11-28 19 views
0

我有在角JS可以在Angular JS中插入多個函數裏面的組件嗎?

app.component('phoneDetail', { 
    templateUrl: 'new.html', 
    controller: ['$http','$routeParams', 
     function PhoneDetailController($http,$routeParams) { 
     var valueX = this; 


     $http.get('http://angular.github.io/angular-phonecat/step-7/app/phones/'+ $routeParams.valueX + '.json').then(function(response){ 
      valueX.phone = response.data; 
     }); 
     }] 
}); 

我需要插入象的onclick()

$scope.littleSize = false; 

$scope.toggleSize = function() { 
    $scope.littleSize = !$scope.littleSize; 

可以插入內部此組件上或我必須創建另一組件的另一功能的部件? 謝謝。

回答

0

您可以將任意多的功能放入控制器。您有責任以合理的方式將它們分開。

所以這是好的:

app.component('phoneDetail', { 
    templateUrl: 'new.html', 
    controller: ['$http','$routeParams', 
     function PhoneDetailController($http,$routeParams) { 
      var controller = this; 
      $http.get('http://angular.github.io/angular-phonecat/step-7/app/phones/'+ $routeParams.valueX + '.json').then(function(response){ 
      controller.phone = response.data; 
      }); 
      controller.onClick = function() { console.log("I am clicked"); } 
    }] 
}); 

new.html

<div> 
    <span>{{ $ctrl.phone }}</span> 
    <button ng-click="$ctrl.onClick()">Click me</button> 
</div> 

我希望我得到的問題的權利。

+0

我有這個函數$ scope.littleSize = false; $ scope.toggleSize = function(){ $ scope.littleSize =!$ scope.littleSize;與$範圍我的應用程序不運行,我怎麼可以把內部組件? – nowaySync

+0

您可以使用此值(代碼示例中的代碼示例控制器中的valueX)而不是$ scope。例如'controller.littleSite = false;控制器。 toggleSize = function()...'和視圖'$ ctrl.toggleSize()'。 –

+0

在div上我改變了css的值,我必須改變一些東西嗎? – nowaySync

相關問題