source

마크업에서 각도 범위 변수 설정

lovecheck 2023. 3. 8. 21:16
반응형

마크업에서 각도 범위 변수 설정

간단한 질문:스코프 값을 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/

ng-init루프 내에 변수를 할당하는 경우 이 동작하지 않습니다.사용하다{{myVariable=whatever;""}}

후행""모든 텍스트에 대해 평가되는 각도 식을 중지합니다.

그럼 그냥 전화하시면 됩니다.{{myVariable}}변수 값을 출력합니다.

여러 개의 중첩된 어레이를 반복할 때 이 방법이 매우 유용하다는 것을 알았고 여러 번 쿼리하는 대신 현재 반복 정보를 하나의 변수에 보관하고 싶었습니다.

ngInit 변수를 초기화하는 데 도움이 됩니다.

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

jsfiddle 예시

다음 명령어를 만듭니다.myVar와 함께

scope : { myVar: '@' }

이렇게 불러주세요.

<div name="my_map" my-var="Richmond,VA">

특히 명령어의 camel case 참조는 하이픈으로 연결된 태그 이름에 유의하십시오.

자세한 내용은 다음 URL에서 "트랜스클루전 및 범위에 대하여"를 참조하십시오.- http://docs.angularjs.org/guide/directive

명령어 내에서 다양한 방법으로 속성에서 스코프 변수로 값을 복사하는 방법을 보여 주는 바이올린이 있습니다.

html에서 다음과 같이 값을 설정할 수 있습니다.아직 각도에서 직접 해법은 없는 것 같아요.

 <div style="visibility: hidden;">{{activeTitle='home'}}</div>

사용할 수 있습니다.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>
$scope.$watch('myVar', function (newValue, oldValue) {
        if (typeof (newValue) !== 'undefined') {
            $scope.someothervar= newValue;
//or get some data
            getData();
        }


    }, true);

변수는 컨트롤러 이후에 초기화되므로 사용자가 컨트롤러와 사용을 초기화하지 않은 시기를 감시해야 합니다.

루프가 아닌 경우 ng-init을 사용할 수 있습니다.

{{var=foo;""}}

"는 변수를 표시하지 않습니다.

답변은 좋지만 필요한 스코프 변수를 설정할 수 있는 글로벌 스코프 함수를 만드는 것이 좋다고 생각합니다.

따라서 globalController는

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

html 파일에서 호출합니다.

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

그러면 각 컨트롤러에서 $scope.myVar를 사용할 수 있습니다.

숨겨진 필드에는 다음과 같이ng-value 디렉티브를 사용할 수 있습니다.

<input type="hidden" ng-value="myScopeVar = someValue"/>

그러면 스코프 변수(myScopeVar)의 값이 "someValue"로 설정됩니다.

언급URL : https://stackoverflow.com/questions/16796341/set-angular-scope-variable-in-markup

반응형