100

簡単な質問: コントローラーで読み取られるように、html でスコープ値を設定するにはどうすればよいですか?

var app = angular.module('app', []);

app.controller('MyController', function($scope) {
  console.log($scope.myVar);
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app='app'>
  <div ng-controller="MyController" app-myVar="test">
    {{myVar}}
  </div>
</div>

JSFiddle: http://jsfiddle.net/ncapito/YdQcX/

4

9 に答える 9

140

ng-initループ内で変数を割り当てている場合は機能しません。使用する {{myVariable=whatever;""}}

末尾""は、任意のテキストに対して評価される Angular 式を停止します。

{{myVariable}}次に、呼び出して変数値を出力するだけです。

これは、複数のネストされた配列を反復するときに非常に便利であり、現在の反復情報を複数回クエリするのではなく、1 つの変数に保持したいと考えていました。

于 2015-02-10T13:07:11.147 に答える
83

ngInit変数の初期化に役立ちます。

<div ng-app='app'>
    <div ng-controller="MyController" ng-init="myVar='test'">
        {{myVar}}
    </div>
</div>

jsfiddle の例

于 2013-05-28T16:15:18.427 に答える
10

このようにhtmlから値を設定できます。angularからの直接的な解決策はまだないと思います。

 <div style="visibility: hidden;">{{activeTitle='home'}}</div>
于 2015-01-02T10:01:44.803 に答える
3

ng-init以下のように使用できます

<div class="TotalForm">
  <label>B/W Print Total</label>
  <div ng-init="{{BWCount=(oMachineAccounts|sumByKey:'BWCOUNT')}}">{{BWCount}}</div>
</div>
<div class="TotalForm">
  <label>Color Print Total</label>
  <div ng-init="{{ColorCount=(oMachineAccounts|sumByKey:'COLORCOUNT')}}">{{ColorCount}}</div>
</div>

次に、他のセクションでローカル スコープ変数を使用します。

<div>Total: BW: {{BWCount}}</div>
<div>Total: COLOR: {{ColorCount}}</div>
于 2015-10-12T16:09:33.900 に答える
0

答えは気に入っていますが、必要なスコープ変数を設定できるグローバルスコープ関数を作成する方がよいと思います。

したがって、globalController で作成します

$scope.setScopeVariable = function(variable, value){
    $scope[variable] = value;
}

そして、あなたのhtmlファイルでそれを呼び出します

{{setScopeVariable('myVar', 'whatever')}}

これにより、それぞれのコントローラーで $scope.myVar を使用できるようになります

于 2017-09-07T07:38:15.837 に答える