最初に注意点を教えてください。マッピングは、この特定のボードとその他のビューでのみ機能します。そのため、変更はかなり簡単に同期できなくなります。
期待どおりの動作をするコードを次に示します。ここで要点を取得できます
https://gist.github.com/2926610
<!DOCTYPE html>
<html>
<head>
<title>My Custom App</title>
<!--Include SDK-->
<script type="text/javascript" src="https://rally1.rallydev.com/apps/2.0p/sdk.js"></script>
<!--App code-->
<script type="text/javascript">
Rally.onReady(function() {
Ext.define('CustomApp', {
extend: 'Rally.app.App',
componentCls: 'app',
mappedToField:"State",
mappedFromField:"Mapme",
fieldNameMap:{
a:"Defined",
b:"Defined",
c:"In-Progress",
d:"In-Progress",
e:"Completed"
},
launch: function() {
this.add({
xtype:'rallycardboard',
types:['task'],
attribute: this.mappedFromField,
listeners:{
beforecarddroppedsave:function(cardboard, card) {
//map the new state from on this card to the new state
var newState = this.fieldNameMap[card.record.get(this.mappedFromField)];
card.record.set(this.mappedToField, newState);
},
scope:this
}
});
}
});
Rally.launchApp('CustomApp', {
name: 'My Custom App'
});
});
</script>
</head>
<body class="myApp">
</body>
</html>