ng-include
ディレクティブにテンプレートを含めるとng-show
、ng-hide
機能しないように見えることがわかりました。
注:angularjs1.0.4
でテスト済み1.0.5
この作品
template.html
<table ng-init="changeable = null">
<tr ng-repeat="(key, item) in items" ng-click="changeable = key">
<td>
<span ng-show="changeable != key">{{item.name}}</span>
<input ng-hide="changeable != key" ng-model="item.name">
</td>
<td>
<button ng-click="changeable = null">OK</button>
</td>
</tr>
</table>
これは動作しません
template.html
<div ng-include src="'/changeable_table.html'"></div>
changeable_table.html
<table ng-init="changeable = null">
<tr ng-repeat="(key, item) in items" ng-click="changeable = key">
<td>
<span ng-show="changeable != key">{{item.name}}</span>
<input ng-hide="changeable != key" ng-model="item.name">
</td>
<td>
<button ng-click="changeable = null">OK</button>
</td>
</tr>
</table>
アップデート
しばらくすると、github @ pkozlowski-opensourceから、この名前空間が必要な理由を説明するwikiへのリンクが表示されます。これは、スコープのプロトタイプの継承のニュアンスです。