У меня есть директива, которая отображает маленький синий ящик в таблице, когда моя стоимость fee.pay имеет значение true. Таблица, в которой я работаю, также является директивой, но я думаю, что мы хорошо справились с каждой директивой, соответствующей области и синхронизируя значения между ними, хотя не стесняйтесь указывать наименьшее число, «это может вызвать что-то», вопрос.Директива не впрыскивать html
вот часть директивы table, с которой я работаю, поскольку для этого я должен быть достаточно из этого файла, но мне нужно показать весь файл, который не представляет проблемы. table.html
<tr><div ng-if="$index > 0">
<div ng-if="defaultFee.Paid">
Paid
</div>
<div ng-if="!defaultFee.Paid">
<input type="button" class="button button-light-blue button-xSmall-text button-w130"
ng-value="defaultFee.pay === undefined ? 'Calculate and Pay' : 'Cancel'"
ng-click="calculateAndPay($index, defaultFee)" />
<input type="button" ng-click="stupidShit(defaultFee)" value="woooh" />
</div>
</div>
</td>
</tr>
<tr calculate-and-pay fee="defaultFee" project="project" ng-show="defaultFee.pay" index="$index" /></tr>
Js для этого файла есть. grid.directive.js
restrict: 'E',
scope: {
ngModel : '=',
fees : '='
},
// calculate and pay handled in controller to utilize
// the $state param to navigate to the calculation page
function calculateAndPay(index, fee) {
// if the passed fee is the initial major fee
// go to the initial fee calculation page
if ($.inArray(fee, $scope.locals.defaults) > -1 && index === 0) {
$state.go('^.^.fee.initial');
}
else {
// display the calculate and pay
// input and pdf link
if (fee.pay === undefined) {
fee.pay = true;
}
// hide the calculate and pay
// input and pdf link
else {
validator.clearValidation();
delete fee.pay;
}
}
}
templateUrl: '/ng-src/components/projects/edit/fee-payment/fee-payment-grid.template.html'
html для директивы, которая не отображается. pay.template.html
Js для этой директивы есть. pay.directive.js
restrict: 'A',
replace: true,
scope: {
fee : '=',
project : '=',
index : '=',
},
controller: ['$scope', '$element', function($scope) {
$scope.locals = {
projectTypes : PROJECT_TYPES,
feeTypes : FEE_TYPES,
payment : {}
}
link: {
post: function postLink(scope, elem, attrs) {
// scope functions
scope.payFee = payFee;
//////////////////////////////////////////////////////////
//saw in other questions similar to mine
//it gets hit when the ng-show value is changed but the
//the function show() doesn't do anything
//if (attrs.hasOwnProperty("ngShow")) {
// scope.$watch("ngShow", function (value) {
// if (value) {
// elem.show();
// elem.removeClass('ng-hide');
// }
// else {
// elem.hide();
// }
// });
//}
templateUrl: '/ng-src/components/projects/edit/fee-payment/calculate-and-pay.template.html'
Чтобы быстро пройти. В таблице есть кнопка «Calculate and Pay», вы можете увидеть текст для этого в ng-value в table.html. Когда это щелкнуть, функция calculateAndPay() вызывается в grid.directive.js. Первое условие, если ($ .inArray (fee, $ scope.locals.defaults)> -1 & & index === 0), не пострадает, это другой тестовый пример. Но то, что я пытаюсь исправить, также затронет эту область, если она не исправлена. один раз в else, первое условие изменяет бит на true, это значение, которое ng-show просматривает (fee.pay = true). Как только значение было изменено, я могу нажать на функцию link.post() в файле pay.directive.js, и я могу видеть, когда значения меняются каждый раз. Мне было странно, что я не мог просмотреть мой innerHTML или elem.html(), который заставляет меня думать, что я делаю что-то неправильно с шаблоном, но я не знаю, что.
Любая помощь или совет приветствуются, и если мне нужно что-то объяснить, пожалуйста, дайте мне знать.
Благодарим за помощь!
ли это вообще возможно для вас, чтобы уменьшить этот пример? Можете ли вы создать иллюстративный пример проблемы, чтобы нам не нужно было понимать много бизнес-логики? Удалите все ветви кода, которые не связаны с проблемой. Если вы хотите помочь (и ожидаете получить его), по крайней мере, попытайтесь изолировать проблему как можно больше? Прямо сейчас, мне нужно использовать Ctrl + F только для того, чтобы найти, какую функцию вы имеете в виду. –
Я знал, что слишком много поставил. Мой план состоял в том, чтобы работать на сжатом примере, когда у меня было больше времени. Я буду конденсировать то, что происходит выше, я не хотел добавлять слишком мало, но, к сожалению, я добавил слишком много ха-ха, я, вероятно, не смогу вернуться к этому до 6, хотя, но я буду конденсировать то, что у меня есть с некоторым объяснением чтобы помочь руководство – user2592413
Вы ставите * waaaay * слишком много. И, честно говоря, если у вас нет времени инвестировать в свой собственный вопрос, то почему вы ожидаете, что мы будем вкладывать время в помощь? –