2016-10-31 3 views
0

나는 다음 KO 속성이 있습니다KO 속성이 왜 분할됩니까?

this.propertyView = ko.pureComputed(function() { 
    if (!$.isEmptyObject(this.properties())) { 
     return this.properties().map(function (prop) { 
      var singleProp = ''; 
      for (var p in prop) { 
       if (prop[p]) { 
        singleProp += prop[p] + ', '; 
       } 
      } 
      return singleProp.slice(0, -2); 
     }); 
    } 
    else return "TBD"; 
}, this); 

그리고 HTML :

<span>PROPERTY</span> 
<div data-bind="foreach: propertyView"> 
    <span data-bind="text: $data" class="fnt-normal"></span> 
</div> 

문제는 다음과 같습니다 객체가 아닌 경우 작동이 잘되는 비어 있지만 경우는 비어는 분할입니다 "TBD"- 새 줄의 각 글자. 예를 들어 는 : 비어 있지의 경우는 다음과 같습니다

테스트, 23 일, 뉴욕

가 비어 있으면, 내가 "TBD에게"이런 식으로 받고 있어요 :

T

B

D

+1

"TBD"대신 [ "TBD"]를 반환 해보십시오. 문자열을 문자 배열로 변환 할 수 있으므로 단일 문자열을 포함하는 배열을 지정하십시오. –

답변

1

대신 "TBD"["TBD"]을 돌아보십시오. 문자열을 문자 배열로 변환 할 수 있으므로 단일 문자열을 포함하는 배열을 지정하십시오.

2

이것은 함수에서 배열이 반환되기를 기대하기 때문입니다. 이것은 .map이 제공하는 것입니다. 단일 문자열을 반환하는 경우, 녹아웃은 foreach와 각 문자 반복된다

data-bind="foreach: propertyView" 

당신은 배열의 기본 수익을 포장해야합니다

else return ["TBD"]; 
+0

답변을 해주시고 설명을 해주셔서 감사합니다. 미안 해요. 대답으로 받아 들일 수 없습니다. @DavidThomas가 전에 대답했습니다 ... – user3378165

관련 문제