0

要素の名前を含む入力文字列があります(「名前」属性を意味します)。指定された名前の要素を $scope で検索するには?

私がやりたいことは、パラメータ化されたディレクティブを作成することです

<select bindslave="shipping_state" name="billing_state" ng-model="order.billing_state" ng-options="i.name for i in billingRegions" value="{{ order.billing_state.id }}"></select>
<select name="shipping_state" ng-model="order.shipping_state" ng-options="i.name for i in shippingRegions" value="{{ order.shipping_state.id }}"></select>

現在、CoffeeScript のコードは次のようになっています。

app_directives.directive "bindslave", ->
  require: "ngModel"
  link: (scope, element, attrs, ctrl) ->
    ctrl.$parsers.unshift (viewValue) ->
      if scope.sameAsBilling
        switch attrs['bindslave']
          when "shipping_state"
            scope.order.shipping_state = viewValue
          when "shipping_country"
            scope.order.shipping_country = viewValue
      viewValue

switch 文を削除して name==attrs['bindslave'] の要素を検索したい

4

2 に答える 2

2

How to search $scope for element with given name?

Give your form a name, then Angular will publish the FormController onto the current scope under the given name. If your form elements have names, they are available also:

<form name="myForm" novalidate>
<select bindslave="shipping_state" name="billing_state" ...>
<select name="shipping_state" ...> 

Then you can access information about the form elements:

console.log($scope.myForm.billing_state, $scope.myForm.shipping_state);
于 2012-12-16T04:23:15.453 に答える
0

何を達成しようとしているのかはまだわかりませんが、スイッチを次のようなものに交換してみませんか。

scope[attrs.bindslave] = viewValue

次に、HTMLで適切な参照を使用します。

<select bindslave="order.shipping_state" ... ></select>
于 2012-12-14T12:28:32.463 に答える