問題は、開発環境(Windows 7 64ビット)でWebアプリを実行すると、ノックアウトバインディングが設計どおりに機能することですが、アプリをHerokuで実行すると、同じ正確なデータを持つ同じ正確なページで、
キャッチされないエラー:バインディングを解析できませんメッセージ:ReferenceError:searchLinkが定義されていません。バインディング値:attr:{href:searchLink}
私はノックアウトマッパーを使用してjsonを必要なオブジェクトに解析しています。ViewModelsは
var CoachesViewModel = function(data){
var self = this;
ko.mapping.fromJS(data, mapping, this);
}
var PendingCoachModel = function(data){
var self = this;
ko.mapping.fromJS(data, mapping, this),
}
var mapping = {
'coaches': {
create: function(options) {
return new CoachesViewModel(options.data);
}
},
'pendingCoaches':{
create:function(options){
return new PendingCoachModel(options.data);
}
}
}
var viewModel = function(coaches,pendingCoaches){
var self = this;
ko.mapping.fromJS(coaches, mapping, this);
ko.mapping.fromJS(pendingCoaches, mapping, this);
}
var vm = new viewModel(${team.serializedCoaches()},${team.serializedPendingCoaches()});
ko.applyBindings(vm);
The json is
{'coaches':[{'email':'noemail502e6c13e4b0831b62e6896e@...','name':'Jim Smith','searchImgLink':'http://localhost:9000/...','searchLink':'http://localhost:9000...','userId':'502e6c4b...96e'}]}
'pendingCoaches':[{'notifyId':'512bd9b874062909605d1','user':{'email':'hdog_lbf50f9698ae4ol.com','name':'Bob Johnson(Obf.)','pendingUser':false,'searchImgLink':'http://localhost:9000..','searchLink':'http://localhost:9000...','userId':'502e6c41e4e691e2'}}]
<!-- ko foreach: coaches -->
<div class = 'tCoach'>
//this is where it breaks
<a data-bind="attr:{href:searchLink}"><img data-bind = "attr:{src:searchImgLink}" class = 'coachImage'/></a>
<div class = 'coachInfo'>
<p><a data-bind="attr:{href:searchLink},text:name" class = 'coachName'></a></p>
<p data-bind = "text:reducedEmail"></p>
<p data-bind="if:isHeadCoach">Head Coach</p>
</div>
<img data-bind="bindCoachDropdown:self,attr:{manId:userId}" class = 'hd_drop managers' src = '/public/images/dropdown_orange.png' />
</div>
<!-- /ko -->
質問に関係のない関数と変数を削除しました。