我试图scope: {test:"="}
在定义指令时使用符号来实现本地/父数据绑定。
但是,在下面的示例中,尽管console.log($scope.$parent);
记录了父范围确实test
定义了一个属性,但此代码仍会引发异常Expression 'undefined' used with directive 'testdirective' is non-assignable
。
如果我使用,则不再抛出异常scope: {test:"=?"}
,但是在父级和指令之间没有数据绑定$scope.test
。
TestCtrl 是视图的控制器。
我究竟做错了什么 ?
应用程序.js
var ng_app = angular.module('my_app',['ngRoute']);
ng_app.config(['$routeProvider', function($routeProvider){
$routeProvider.
when('/testroute/', {templateUrl: 'partials/test.html', controller:'TestCtrl'}).
otherwise({redirectTo: '/testroute/'});
}]);
ng_app.controller('TestCtrl', function($scope){$scope.test = 0;});
ng_app.directive('testdirective', function()
{
return {
restrict:'E',
scope: {test:"="}, // this complains that the parent.scope has no property 'test'
controller: function($scope){
// this logs a scope with adequate 'test' property defined:
console.log($scope.$parent);
$scope.test = 1;
}
}
});
部分/test.html
<testdirective></testdirective>
我使用角度 1.2.0rc3