I have a grid with the select button where this button will load the grid data into a form so that it can be changed. It turns out that I am not able to set the select field with the data of the object that mounts the grid itself.
Here are snippets of the code:
<form name="mainForm" ng-submit="saveProduto();">
<label for="Nome">Descricao</label>
<input type="text" class="form-control" id="Descricao" placeholder="Enter Descricao" required data-ng-model="controller.produto.Descricao" />
<label for="Login">Modelo</label>
<input type="text" class="form-control" id="Modelo" placeholder="Enter Modelo" required data-ng-model="controller.produto.Modelo" />
<label for="text">Fabricante</label>
<input type="text" class="form-control" id="Fabricante" placeholder="Enter Fabricante" required data-ng-model="controller.produto.Fabricante" />
<label for="text">Categoria</label>
<select ng-model="controller.produto.Categoria" ng-options="obj.Descricao for obj in categorias" required>
<option value="">Selecione uma Opção</option>
</select>
Currently selected: {{ controller.produto.Categoria }}
<br />
<div ng-show="isAlterar()">
<button type="button" data-ng-click="salvarUsuario(controller.produto)">Salvar</button>
<button type="button" data-ng-click="CancelarSelecao()">Cancelar</button>
</div>
</form>
<hr />
<h2> Produtos existentes </h2> <br />
<table style="width:100%" class="table table-hover">
<thead>
<tr>
<th><h3>Descricao</h3></th>
<th><h3>Modelo</h3></th>
<th><h3>Fabricante</h3></th>
<th><h3>Categoria</h3></th>
<th><h3>Ações</h3></th>
</tr>
</thead>
<tbody>
<tr ng-repeat="produto in produtos">
<td ng-blur="updProduto(produto,'Descricao',$event)" ng-dblclick="makeEditable($event)">{{produto.Descricao}}</td>
<td ng-blur="updProduto(produto,'Modelo',$event)" ng-dblclick="makeEditable($event)">{{produto.Modelo}}</td>
<td ng-blur="updProduto(produto,'Fabricante',$event)" ng-dblclick="makeEditable($event)">{{produto.Fabricante}}</td>
<td ng-blur="updProduto(produto,'Categoria',$event)" ng-dblclick="makeEditable($event)">{{produto.Categoria.Descricao}}</td>
<td> <button type="button" class="btn btn-danger" data-ng-click="dltProduto(produto.Id)">Excluir</button> </td>
<td> <button type="button" class="btn" data-ng-click="selecionarProduto(produto)">Selecionar</button> </td>
</tr>
</tbody>
</table>
$scope.selecionarProduto = function (obj) {
var prod = {
Id: obj.Id,
Descricao: obj.Descricao,
Modelo: obj.Modelo,
Fabricante: obj.Fabricante,
Categoria: obj.Categoria
};
controller.produto = prod;
alterar = true;
};
Follow the data for the Product and Category objects:
public class ProdutoViwer: BasicViwer<int>
{
public virtual string Descricao { get; set; }
public virtual string Modelo { get; set; }
public virtual string Fabricante { get; set; }
public virtual CategoriaViwer Categoria { get; set; }
public virtual IList<PedidoViwer> Pedidos { get; protected set; }
public ProdutoViwer()
{
if (Pedidos == null)
{
Pedidos = new List<PedidoViwer>();
}
}
}
public class CategoriaViwer: BasicViwer<int>
{
public virtual string Descricao { get; set; }
public virtual IList<ProdutoViwer> Produtos { get; set; }
}
Can anyone explain why the value is not set in select?