Я получил эту ошибку, когда я использую директиву:Директива Non-Назначаемые Expression, когда проект построен с ворчанием (YEOMAN настройки)
Error: [$compile:nonassign] Expression '' used with directive 'profileModifier' is non-assignable!
Однако ошибка возникает только тогда, когда мой проект построен с ворчанием. Он работает в devmode.
Моя директива:
angular.module('clientApp')
.directive('profileModifier', function() {
return {
templateUrl: 'template/profile-modifier/profile-modifier.html',
restrict: 'E',
scope: {
title: '=',
enabled: '=',
available: '=',
show: '=',
values: '=',
columnTitleOne: '=',
columnTitleTwo: '=',
columnPropertyKeyOne: '=',
columnPropertyKeyTwo: '=',
uploadFn: '='
},
link: function postLink(scope, element, attrs) {
scope.toggleOnOff = function(val){
scope.enabled = val;
if(!val){
scope.show = false;
}
};
scope.toggleShow = function(){
scope.show = !scope.show;
}
}
};
});
Markup:
<profile-modifier
title="'Lutningsprofil'"
enabled="selectedProfile.value.slope.enabled"
available="selectedProfile.value.slope.available"
show="selectedProfile.value.slope.show"
values="selectedProfile.value.slope.values"
column-title-one="'KM'"
column-title-two="'Lutning (‰)'"
column-property-key-one="'distance'"
column-property-key-two="'slope'"
upload-fn="openUploadModalSlope">
</profile-modifier>
Ошибка возникает, когда я использую функцию scope.toggleOnOff
. По какой-то причине свойство «enabled» больше не может быть назначено при построении проекта.
selectedProfile определяется в моей Ctrl:
$scope.profiles = InputFactory.getProfiles();
InputFactory.selectedProfile = {
value: $scope.profiles[0]
};
$scope.selectedProfile = InputFactory.selectedProfile;
Есть идеи?
И как 'selectedProfile.value.slope.enabled' определен в контроллере? – dfsq
@dfsq Я обновил свой вопрос. – Per
Не знаете, как минимизация влияет на ваше конкретное приложение, но проверяйте зависимости, введенные должным образом в контроллер. – dfsq