문제

JSON으로서의 2 차원 배열의 2 차원 배열을 반환하는 컨트롤러가 있습니다.자바 스크립트에서 전화를 걸어 :

$.getJSON("/Game/GetBoard", function (json) {
    data = json;
    board = ko.mapping.fromJS({ board: data });
    ko.applyBindings(board, $('.board')[0]);
});
.

나는 또한 다음과 같은 HTML을 가지고있다 :

<table>
    <tbody data-bind="foreach: board">        
        <tr data-bind="foreach: $data">
            <td data-bind="attr: { class: Color }"></td>
        </tr>
    </tbody>
</table>
.

멋진 컬러 셀이있는 멋진 2 차원 HTML 테이블을 생성합니다 (색상 속성에서 오는 클래스를 기반으로 함).이제이 색을 다른 것으로 어떻게 변경할 수 있습니까?

나는 board[1][1]({Color: 'red'});를 시도했지만, 보드 [1]가 존재하지 않는다는 오류가 발생합니다 ...

및 다른 질문, 어떻게 구속력에 둘 이상의 클래스를 추가 할 수 있습니까?나는 시도했다 :

...
<td data-bind="attr: { class: Color + ' some-other-class' }"></td>
...
.

그러나 그런 다음 I :

class="function b() {     if (0 < arguments.length) {         if (!b.equalityComparer || !b.equalityComparer(d, arguments[0])) {             b.H(), d = arguments[0], b.G();         }         return this;     }     r.T.Ha(b);     return d; } some-other-class"
.

그것은 뭔가 잘못하고 있습니다.

도움이 되었습니까?

해결책

매핑 플러그인은 배열을 ObservableArray 및 속성을 Observable로 전환합니다.

첫 번째 경우에 대해 다음을 수행하여 Observable 배열을 풀어야합니다.

다른 질문에 대해 색상은 관찰 가능합니다.표현식에서 사용하고 값을 가져 오려면 색상 ()을 수행해야합니다.그래서, 그것은 다음과 같습니다 :

<td data-bind="attr: { class: Color() + ' some-other-class' }"></td>
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top