개체를 호출할 수 없습니다.angularjs 키
UI를 사용하고 있습니다.부트스트랩 아코디언과 나는 내 제목을 다음과 같이 정의했다.
<accordion-group ng=repeat="(cname, stations) in byClient">
<accordion-heading>
{{ cname }} <span class="pull-right"> {{ Object.keys(stations).length }} Stations</span>
</accordion-heading>
이 메시지가 뜨면Object.keys(stations).length
아무것도 해결되지 않습니다.컨트롤러에 같은 길이의 콜을 넣으면 예상 카운트가 반환됩니다.Method Call이 AngularJS에서 동작하지 않는 원인이 있습니까?
나머지 아코디언은stations
예상대로 동작하기 때문에 올바르게 입력되고 있는 것을 알 수 있습니다.그byClient
데이터 구조는 기본적으로 다음과 같습니다.
{
"Client Name" : {
"Station Name": [
{...},
{...}
]
}
}
네, 그 이유는Object
의 일부입니다.window/global
각도가 스코프에 대해 그 식을 평가할 수 없습니다.지정한 경우Object.keys
당신의 결합 각도에서 그것을 평가하려고 합니다.$scope
찾을 수 없습니다.참조를 저장할 수 있습니다.object.keys
rootScope의 일부 유틸리티에서 사용할 수 있습니다.
이런 느낌:-
angular.module('yourApp',[deps...]).run(function($rootScope){
//Just add a reference to some utility methods in rootscope.
$rootScope.Utils = {
keys : Object.keys
}
//If you want utility method to be accessed in the isolated Scope
//then you would add the method directly to the prototype of rootScope
//constructor as shown below in a rough implementation.
//$rootScope.constructor.prototype.getKeys = Object.keys;
});
이것을 다음과 같이 사용합니다.
<span class="pull-right"> {{ Utils.keys(stations).length }} Stations</span>
격리된 범위를 제외한 모든 하위 범위에서 사용할 수 있습니다.격리된 범위(예: 격리된 범위 지침)에서 작업을 수행할 계획인 경우 다음 참조를 추가해야 합니다.Object.keys
스코프에서 또는 스코프에서 길이를 반환하는 메서드를 노출할 때.
또는 키 길이를 반환하는 형식 필터를 생성하여 어디에서나 사용할 수 있습니다.
app.filter('keylength', function(){
return function(input){
if(!angular.isObject(input)){
throw Error("Usage of non-objects with keylength filter!!")
}
return Object.keys(input).length;
}
});
및 실행:-
{{ stations | keylength }}
함수를 사용하여 객체 속성 수를 결정합니다.
$scope.keyLength = function (obj) {
return Object.keys(obj).length;
}
및 용도:
{{ keyLength(myObj) }}
필터가 가장 각진 것 같아요.템플릿 코드에서 구조를 처리하는 JS 방법:
angular.module('app.filters').filter('objectKeysLength', [function() {
return function(items) {
return Object.keys(items).length;
};
}]);
angular.module('app.filters').filter('objectKeys', [function() {
return function(item) {
if (!item) return null;
var keys = Object.keys(item);
keys.sort();
return keys;
};
}]);
각도 2 이상의 용액을 찾는 경우.이제 객체 위에 상호 작용하는 데 사용할 수 있는 키 값 파이프를 사용합니다.
AngularJS 1.6에서 작업하기 위한 다른 답변을 얻을 수 없었습니다.어떤 점이 도움이 됐는지$window
접근하다Object.keys
이것처럼.$window.Object.keys({ 'a': 1, 'b': 2 })
여기 나에게 효과가 있었던 솔루션이 있습니다.
export class xyzcomponent{
Key = Object.keys;
}
컴포넌트 html 파일에서는 다음과 같은 것을 사용할 수 있습니다.
<li *ngFor="let i of Key(stations)">.........</li>
언급URL : https://stackoverflow.com/questions/25299436/unable-to-call-object-keys-in-angularjs
'programing' 카테고리의 다른 글
Facebook like box 위젯이 데이터 폭 속성을 인식하지 못합니다. (0) | 2023.03.02 |
---|---|
플러그인 업로더의 업로드 디렉토리를 변경하는 방법 (0) | 2023.03.02 |
애플리케이션 컨텍스트에서 일부 콩의 의존성이 사이클을 형성합니다. (0) | 2023.03.02 |
jQuery Ajax가 404 오류를 반환하지만 올바른 응답입니다. (0) | 2023.03.02 |
XML 없이 스프링이 있는 속성을 기반으로 런타임에 다른 서비스를 주입하는 방법 (0) | 2023.03.02 |