2016-07-13 4 views
2

나는 각도 1에서 각도 2로, 실제로는 이온 1에서 2로 이동을 시도하기 시작했고, 나의 첫 번째 컴파일 오류 중 하나는 angular.isUndefined와 angular.equals aren이다. 해결되지 않았다.angular.isUndefined & angular.equals in angular 2

어떻게 해결해야합니까? 귀하의 경우에는

namespace Utils { 

export class Comparator { 

    static isEmpty(obj:any):boolean { 
     return obj == null || Object.keys(obj).length === 0; 
    } 

    static isNumberNullOrZero(obj:number):boolean { 
     return obj == null || obj === 0; 
    } 

    static equals(obj1:any, obj2:any):boolean { 
     return angular.equals(obj1, obj2); // <== here angular unresolved 
    } 

    static isStringEmpty(str:string):boolean { 
     return !str || 0 === str.length; 
    } 

    static isStringBlank(str:string):boolean { 
     return !str || /^\s*$/.test(str); 
    } 

    static isBiggerThanZero(num:number):boolean { 
     return num != null && !angular.isUndefined(num) && num > 0; // <== here angular unresolved 
    } 

    } 
} 

답변

3

당신은 단순히 num === undefinedangular.isUndefined(num)을 대체 할 수 있습니다.

개체 평등은 조금 까다 롭습니다. 이러한 기능을 포함하는 라이브러리가 있습니다 (예 : Lodash

+0

당신의 대답은 Thx. 나는 당신이 말했듯이 undefined를 정정했다. 평등 체크를 위해서 나는 밑줄이 더 성능이 좋은 것처럼 보이기 때문에 Lo-dash 대신에 언더 스코어를 선택한다. –

0

Angular2는

을 isUndefined 해달라고

당신이 궁금해하는 경우 그 방법에없는 이유를 간단하게

if (!num) { 
} 
+0

이것은 좋은 해결책이 아닙니다. num이 0 또는 false이면? – Lance

2
당신은 아마 이미 고정했다

하지만 에 의해 angular.isUndefined (NUM)를 대체 할 수있다 angular2, 이유는 다음과 같습니다.

알고 계신 것처럼, 앵귤러 팀은 $로 프레임 워크에서 제공 한 접두사가있는 개체 이름을 사용합니다. 이것은 응용 프로그램 코드와의 충돌을 피하기 위해 angular1의 명명 규칙입니다.

접두어가 붙은 속성을 무시하기 위해 equals와 같은 몇 가지 메소드를 구현해야한다는 것이 밝혀졌습니다. 그리고 그것은 angular.equals가하는 것들 중 하나입니다. angular.equals를 사용해 오브젝트를 비교하면 (자), 그 접두사는 무시됩니다.

angular.equals({a: 1}, {a: 1}) === true 
angular.equals({a: 1}, {a: 1, $a: 2}) === true 

isUndefinedangular.isUndefined 교환이 post

0

더 찾기, 당신의 코드를 아래 함수를 추가

`에`의`의 JS

function isUndefined(o) { 
    return typeof o === 'undefined'; 
} 

```