2016-10-31 51 views
0

Webアプリケーションを作成するためのブーストラップ管理WebアプリケーションAngulrを使用していますが、角度要素から値を読み取る方法が問題です。Angular Jsでカスタムhtml要素の値を取得する方法

これは要素の外観です。

<ui-select ng-model="selected" theme="bootstrap" ng-change='test()'> 
<ui-select-match placeholder="Select by typing client's name or number">{{$select.selected.first_name}}</ui-select-match> 
<ui-select-choices ng-value='mikeee' group-by="'group'" repeat="id_number in clients_list | filter: $select.search"> 
      <span ng-bind-html="id_number.first_name + ' - ' | highlight: $select.search"></span> 
      <small ng-bind-html="id_number.registration_number | highlight: $select.search"></small> 
     </ui-select-choices> 
     </ui-select> 

とテスト()関数:

$scope.test = function() 
{ 
    var selectedValue = $.param({ 
     client_number : $scope.selected, 
    }); 

    alert(selectedValue) 
} 

要素の変化の値が、私は警告ボックスを取得するが、Client_numberは空です。 ありがとうございます。

+0

あなたはデータをシリアル化しようとしていますか? –

+0

@Nikhil、ユーザーが選択したときの値だけではありません。 – mikie

答えて

1

angular 
 
    .module('myApp', []) 
 
    .run(function($rootScope) { 
 
    $rootScope.title = 'myTest Page'; 
 
    }) 
 
    .controller('testController', ['$scope', 
 
    function($scope) { 
 

 
     $scope.test = function() { 
 
     var selectedValue = serializeData({ 
 
      client_number: $scope.selected 
 
     }); 
 

 
     alert(selectedValue) 
 
     } 
 

 

 

 
     function serializeData(data) { 
 
     // If this is not an object, defer to native stringification. 
 
     if (!angular.isObject(data)) { 
 
      return ((data == null) ? "" : data.toString()); 
 
     } 
 

 
     var buffer = []; 
 

 
     // Serialize each key in the object. 
 
     for (var name in data) { 
 
      if (!data.hasOwnProperty(name)) { 
 
      continue; 
 
      } 
 

 
      var value = data[name]; 
 

 
      buffer.push(
 
      encodeURIComponent(name) + "=" + encodeURIComponent((value == null) ? "" : value) 
 
     ); 
 
     } 
 

 
     // Serialize the buffer and clean it up for transportation. 
 
     var source = buffer.join("&").replace(/%20/g, "+"); 
 
     return (source); 
 
     } 
 
    } 
 
    ])
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<input ng-app="myApp" ng-controller="testController" ng-model="selected" theme="bootstrap" ng-change='test()' />

+0

こんにちは@Nikhil、返信いただきありがとうございます。私はちょうどユーザーがドロップダウンでオプションを選択したときに値を取得したい。私はあなたのソリューションを試してみましたが、動作しません。 – mikie

+0

@mikie、私はスニペットに私の答えを変更しました。あなたは今試すことができますか? –

+0

通常のテキスト入力と選択ボックスでは正常に動作し、値を取得できます。問題は、私がカスタムコントローラエレメントで同じことをしようとするときに起こります。 ' ... ' – mikie

関連する問題