2016-06-28 6 views
0

私はAngularJSバージョン1.5.7でコーディングしています。指令がパラメータとしてオブジェクトを受け取らない

何らかの理由で、cdataという変数(object)が表示されません。

なぜディレクティブは変数を受け取りませんか?私はすべての私のコード貼り付けの下にここで

home.js

'use strict'; 

var home = angular.module('app.home', [ 
    'global.factory', 
    'home.factory', 
    'ui.scroll', 
    'ui.scroll.jqlite', 
    'd.card' 
]); 

home.controller('HomeController', [ 
    'homeFactory', 
    '$timeout', 
    function (homeFactory, $timeout) { 

    var data = this; 

    data.posterSize = (screen.width - 42)/3; 

    homeFactory.getJSON().then(function (response) { 
     data.feed = response.home; 
    }); 

    data.datasource = { 
     get: function(index, count, success) { 
     $timeout(function() { 
      var start = Math.max(0, index); 
      var end = Math.min(index + count, data.feed.length); 

      var results = []; 
      for (var i = start; i < end; i++) { 
      results.push(data.feed[i]); 
      } 

      success(results); 
     }, 100); 
     } 
    }; 
    } 
]); 

_home.htmlを

<article ng-controller="HomeController as myHome" class="base-gen" ui-scroll-viewport style="height:100%"> 
    <card class="card" ui-scroll="element in myHome.datasource" cdata="{{element}}" psize="{{myHome.posterSize}}"></card> 
</article> 

card.js

'use strict'; 

var dCard = angular.module('d.card', ['global.factory']); 

dCard.directive('card', [ 'globalImages', function (globalImages) { 
    return { 
    restrict: 'E', 
    scope: { 
     cdata: '@', 
     psize: '@' 
    }, 
    controller: function() { 
     console.log(this.cdata); 
    }, 
    controllerAs: 'myCard', 
    bindToController: true, 
    templateUrl: 'app/Modules/card.html' 
    }; 
}]); 

私も、私は1.5.7angular 1.4.8から移行してきたことを指摘したいとui-router 0.2.15から0.3.1

+1

の必要がないpsize

<article ng-controller="HomeController as myHome" class="base-gen" ui-scroll- viewport style="height:100%"> <card class="card" ui-scroll="element in myHome.datasource" cdata="element" psize="{{myHome.posterSize}}"></card> </article> 

31013435/2435473) –

+0

のような音は、ui-scrollモジュールに関連していました。バワーでそれをフェッチした後、それ以上の問題はありません。皆さんありがとう! – DevStarlight

答えて

2

ディレクティブで結合が「=」と言い、それは角度がバインディングを行うことを意味します君は。 {{ }}の必要はありません。私はあなたが{{ }}を必要とするかどうかわからないのですが、CDATAのために[この回答](http://stackoverflow.com/a/に関連している可能性がカッコ

+0

投稿を更新しました。私のコードをコピーするのは間違いでした。ここでのポイントは、私のディレクトリに 'Read Only'データを受け取ることです。 – DevStarlight

+1

'@'の代わりにできることは、 ':: ='というデータバインディングの方法です。マークアップをきれいにして、その動作を上書きすることができるときに、角度の属性に '{{}} 'のマークアップを付けるのが変だと思った。 – Daniel

+0

ああ!はい!私はそれを念頭に置くでしょう!どうもありがとう! – DevStarlight

関連する問題