2014-11-18 4 views
0

websocket을 통해 서버에서 동적으로 만들고 업데이트 한 버튼 목록을 표시하려고합니다. 내 범위는 다음과 같습니다HTML로 문자열이있는 범위 키에 액세스

내 HTML에서
$scope = { 
    buttons: ["buttonA", "buttonB"], 
    buttonA: { caption: "OK" }, 
    buttonB: { caption: "Cancel" } 
}; 

, 나는, 버튼의 목록을 가기 위해 NG 반복을 사용하는 DOM에 추가하고로 사용할 각 버튼의 캡션 속성을 사용합니다 "value"속성.

하지만 HTML에서 json 필드에 액세스하는 방법을 모르겠습니다.

답변

1

왜 모델을 좋아하는지 모르겠습니다. 당신은 다음과 같이 $의 scope.buttons의 버튼을 유지 할 수 있습니다

<div ng-app="myApp" ng-controller="MyCtrl"> 
    <div ng-repeat="b in buttons"> 
     <button>{{b.caption}}</button> 
    </div> 
</div> 
<script> 
var app = angular.module("myApp", []); 

app.controller("MyCtrl",function ($scope) { 
    $scope.buttons = [{ caption: "OK" }, { caption: "Cancel" }]; 
}); 
</script> 

당신이 범위의 "루트"에 각각의 버튼을하려는 이유,이 같은 검색 기능을 사용할 수있는 몇 가지 이유가있는 경우 :

<div ng-app="myApp" ng-controller="MyCtrl"> 
    <div ng-repeat="b in buttons"> 
     <button>{{lookup(b).caption}}</button> 
    </div> 
</div> 
<script> 
var app = angular.module("myApp", []); 

app.controller("MyCtrl",function ($scope) { 
    $scope.buttons = ["buttonA", "buttonB"]; 
    $scope.buttonA = { caption: "OK" }; 
    $scope.buttonB = { caption: "Cancel" }; 

    $scope.lookup = function(key) { 
     return $scope[key]; 
    } 
}); 
</script> 
+0

간단합니다. 이 방법은 배열이 단추가 페이지에 표시되는 방법 (배열의 배열로 표시되는 단추 모눈)을 나타 내기 때문에 필요합니다. 반면에, 나는 버튼의 속성을 업데이 트하여 배열을 엉망으로 만드는 기능을 원하지 않습니다. 배열에 단추가 없을 수도 있으며 서버의 상태를 업데이트하려고합니다. –

관련 문제